我通过以下命令生成了 .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 文件位于同一目录中就像在我的电脑上一样。
听说上面的问题可以通过
我使用的 MANIFEST 文件
包括在我自己的罐子里,这将
列出依赖位置
但我不明白它是如何工作的。我确实需要在编译阶段指定“external.jar”的位置(否则编译器会抱怨)。
首先:你似乎没有编译一个名为MainClass
并且您所有的 .java 文件似乎都在一个包中,所以我假设MainClass
只是一个占位符,您实际上在这里使用了正确的类名。
你需要指定一个Class-Path header这提到了你的外部 .jarmanifest.txt
并将 .jar 文件与您的 jar 一起交付。你需要这样做此外来指定-cp
在编译时。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)