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

我通过以下命令生成.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文件将位于同一目录中就像在我的电脑上一样.

我听说上面的问题可以解决了

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 – 保存用户选择的语言,Android


下一篇:java – log4.properties应该在类路径上吗?