【问题标题】:Adding external jar in classpath placed in home dir在放置在主目录中的类路径中添加外部 jar
【发布时间】:2016-06-22 19:57:39
【问题描述】:

我正在开发一个使用另一个项目的外部 jar 的 java 项目。此外部 jar 无法在 lib 文件夹中签入,因为它不断发展。因此,我们计划将最新的 jar 保存在用户主目录下的文件夹中,例如“ExtJar”。 问题是如何修改类路径以从主目录指向这个 jar? 所以,我一直在寻找类似并且应该适用于所有操作系统平台的东西- classpathentry kind="lib" path="MyHomeDir/ExtJar/myExternalJar.jar"

其中 MyHomeDir 是我根据链接定义的变量 - - Use Eclipse classpath variable to replace absolute "sourcepath" path?

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

在评估它在哪个操作系统上运行之后,有没有办法以编程方式修改这个变量的值以指向主目录?

【问题讨论】:

  • 如果 JAR “不断发展”,最新版本将如何进入每个开发人员的主目录?
  • 我们有一个批处理文件,它将最新的 jar 文件复制到主目录。用户必须在运行 java 应用程序之前运行这个批处理文件。
  • 我在下面提供了一个答案,但我不明白为什么您不能只将 JAR 与项目所依赖的其他 JAR 一起签入。在我看来,如果它经常更改,那就更有理由在版本控制中对其进行管理。如果您不打算使用 Gradle 或 Maven 等依赖管理工具,那通常是最好的选择。

标签: java eclipse classpath


【解决方案1】:

类路径变量的关键在于它的值对于所有工作空间都不相同;每个工作区都定义了变量指向的位置。

不过,您仍然可以使用类路径变量来解决您的问题。例如,创建一个名为 EXT_JAR_HOME 的变量并将其指向您的 C:\Users\your.name\ExtJar 文件夹。然后在项目构建路径中,使用 Add Variable... 选择并 **Extend...* 它,选择实际的 JAR 文件。这将导致项目的构建路径具有类似EXT_JAR_HOME/ExternalJar.jar. Then each developer workspace will just need to, one time, defineEXT_JAR_HOME` 的条目并将其指向正确的路径。显然,Linux 用户的实际位置与 Windows 用户不同。

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

【讨论】:

  • 感谢 E-Riz 的回答。实际上,我在类路径和构建路径之间感到困惑。正如您在类路径中所说的那样,通过添加变量并扩展它来定义外部 jar 文件。因此,对于每个工作区都必须手动定义它,这对我们来说是可以接受的解决方案。当我们签入引用此外部 jar 的新类时会发生什么令人困惑,因为如果未在项目中签入此 jar,它们会出错。现在,由于构建路径已经有了这个外部 jar,因此新签入不会出现任何编译错误。
猜你喜欢
  • 2013-07-16
  • 2014-02-03
  • 2014-01-20
  • 1970-01-01
  • 2019-09-01
  • 2013-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多