java - 如何在 list 文件中指定依赖项,然后将其包含到我的 .jar 文件中?

标签 java jar dependencies manifest

我通过以下命令生成了 .class 文件:

javac -cp \directoryName\external.jar myPackageDirectory\First.java myPackageDirectory\Second.java

我需要在编译期间使用 -cp 和“外部”库 (external.jar) 的 .jar 文件的名称,以便能够从我的代码中使用该库。


使用我的 .class 文件,我按以下方式生成了我的 .jar 文件:

jar cfm app.jar manifest.txt myPackageDirectory\*.class

manifest.txt 只包含一行:

Main-Class: myPackageName.First

我的问题是我不确定我是否能够在其他计算机上运行我的 .jar 文件。我认为是因为在编译期间我指定了 .jar 文件的位置外部图书馆。因此,我的 .class 文件(包含在 .jar 文件中)将尝试在特定目录中查找外部库的 .jar 文件,并且不保证外部库的 .jar 文件将位于同一目录中就像在我的电脑上一样。


听说上面的问题可以通过a来解决

usage of a MANIFEST file that I include in my own jar, and which will list dependency locations

但我不明白它是如何工作的。我确实需要在编译阶段指定“external.jar”的位置(否则编译器会提示)。

最佳答案

首先:您似乎没有编译一个名为 MainClass 的类,并且您所有的 .java 文件似乎都在一个包中,所以我假设 MainClass只是一个占位符,您实际上在这里使用了正确的类名。

您需要specify a Class-Path header将您的外部 .jar 提到您的 manifest.txt 并将 .jar 文件与您的 jar 一起交付。除了在编译时指定 -cp 之外,您还需要执行此操作。

关于java - 如何在 list 文件中指定依赖项,然后将其包含到我的 .jar 文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2592115/

相关文章:

java - @Secured 函数拒绝授权用户访问

java - 为什么有些 java eclipse 错误没有特定的代码行?

hadoop - vertica jar

java - 如何使用 Maven 将本地 jar 作为依赖项添加到 fat jar?

android - 当 Maven 构建我的项目时,无法从库项目的 jar 中找到类

Java GUI - 添加文本字段

java - 如何在 Mockito 中测试具有相同参数的调用的特定顺序?

.net - Microsoft.ApplicationInsights.Log4NetAppender

java - Maven - 如何管理具有共同依赖项的多个 jar

css - 使用CSS在div上保持纵向纵横比