Java 在放置在home dir中的类路径中添加外部jar

Java 在放置在home dir中的类路径中添加外部jar,java,eclipse,classpath,Java,Eclipse,Classpath,我正在从事一个java项目,该项目使用另一个项目的外部jar。此外部jar无法在lib文件夹中签入,因为它不断演变。所以我们计划将最新的jar保存在一个文件夹中,比如说“ExtJar”,在用户的Home dir下。 问题是我如何修改classpath以从home dir指向这个jar? 所以,我一直在寻找适合所有操作系统平台的产品- classpathentry kind=“lib”path=“MyHomeDir/ExtJar/myExternalJar.jar” 其中MyHomeDir是我根据

我正在从事一个java项目,该项目使用另一个项目的外部jar。此外部jar无法在lib文件夹中签入,因为它不断演变。所以我们计划将最新的jar保存在一个文件夹中,比如说“ExtJar”,在用户的Home dir下。 问题是我如何修改classpath以从home dir指向这个jar? 所以,我一直在寻找适合所有操作系统平台的产品- classpathentry kind=“lib”path=“MyHomeDir/ExtJar/myExternalJar.jar”

其中MyHomeDir是我根据链接定义的变量- -

我查看了上面的链接以添加一个变量,但除此之外,我还希望该变量根据操作系统指向适当的home dir,即Windows的C:\Users\\ExtJar\或linux的/home//ExtJar等


在评估该变量在哪个操作系统上运行后,是否有任何方法通过编程修改该变量的值以指向home dir

类路径变量的要点是,它的值对于所有工作区都不相同;每个工作空间定义变量指向的位置

不过,您仍然可以使用Classpath变量来解决问题。例如,创建一个名为
EXT\u JAR\u HOME
的变量,并将其指向
C:\Users\your.name\ExtJar
文件夹。然后在项目构建路径中,使用添加变量…选择并**扩展…*它,选择实际的JAR文件。这将导致项目的构建路径有一个类似于
EXT\u JAR\u HOME
/ExternalJar.JAR
的条目。然后,每个开发人员工作区只需要定义一次
EXT\u JAR\u HOME`并将其指向正确的路径。显然,Linux用户的实际位置看起来与Windows用户不同


关键是,必须在每个工作区中定义类路径变量,这就是它们的工作方式。

如果JAR“不断发展”,最新版本将如何进入每个开发人员的主目录?我们有一个批处理文件,将最新的JAR文件复制到主目录。用户在运行java应用程序之前必须运行这个批处理文件。我在下面提供了一个答案,但我不明白为什么不能用项目所依赖的其他JAR签入JAR。如果它经常更改,在我看来,这就是在版本控制中管理它的更多原因。如果你不打算使用像Gradle或Maven这样的依赖管理工具,那通常是最好的选择。谢谢E-Riz的回答。实际上,我把自己搞糊涂了,搞不清类路径和构建路径。外部jar文件是通过添加变量并对其进行扩展而在类路径中定义的,如上所述。因此,对于每个工作区,必须手动定义它,这是我们可以接受的解决方案。当我们签入引用这个外部jar的新类时会发生什么,这是一个混乱的问题,因为如果这个jar没有在项目中签入,它们会给出错误。现在,由于构建路径已经有了这个外部jar,所以新签入不会有任何编译错误。