如何在运行时引用Jar文件位置

时间:2011-12-28 00:48:33

标签: java jar reference

我需要在执行Java程序时引用一些jar文件。问题是那些jar文件不会在标准位置。这意味着当Java程序启动时,我需要找出这些jar文件的位置并更新Java程序中的任何引用。我不知道怎么做。 任何帮助将不胜感激。

情境:
我有一个进程A(用.NET编写),它将启动进程B(一个Jar文件)。进程B需要引用大量的Jar文件(250MB)。问题是jar文件的位置会改变。

几个例子:

C:\Program Files (x86)\TestProgram 
D:\OtherProgram 
E:\Program Files\ThirdLocation

因此,进程A或B将读取注册表(在Windows服务器上)以找出Jar文件所在的位置。然后,进程B需要“神奇地将代码中的所有引用指向那些jar文件”。

问题:
问题是我不知道如何“神奇地将代码中的所有引用指向那些jar文件”。我假设我必须以某种方式动态加载jar,或者在我启动Process B时更新引用。

我曾尝试配置构建路径,但我认为我没有正确完成,所以它没有按预期工作。

关于如何做到这一点的任何想法? 谢谢你的帮助!!

1 个答案:

答案 0 :(得分:0)

Java运行时(java.exe或javaw.exe)的一个参数是-cp。它用于设置类路径,如here所述。

Java 6的优点在于您可以在设置类路径时使用通配符。因此,假设您需要在一个文件夹中加载所有JARS,您可以执行以下操作:

-classpath "../lib/*" 

对于命令行,-classpath和-cp是一回事。

要分隔类路径,必须使用分号。您可以使用上面的通配符轻松配置整个类路径,如果这不起作用,则需要手动指定每个JAR文件。这样做时,请注意Windows中的command prompt max length