1

我正在尝试为科学目的开发一个 Java 小程序。我在 Eclipse 的 Ubuntu 11.04 上工作;因为我需要一些附加功能,所以我包含了库“flanagan.jar”、“jcommons.jar”和“jfreechart.jar”。现在,当我从 Eclipse 内部运行小程序时,一切正常。但是,当我尝试在 Eclipse 之外这样做时,情况并非如此。举几个例子:

1) 如果我尝试通过将其嵌入到带有或标记的 HTML 文件中来运行它,则小程序将失败并且我收到错误消息,因为从库中获取的类的定义丢失了,即使我将它们放在同一个文件夹中并且使用正确的archive值告诉浏览器在哪里寻找它们;

2) 如果我尝试使用 javac 编译小程序,请插入:

javac -classpath sourcefile.java library1.jar library2.jar

我收到一条错误消息,指出 .jar 文件的类名are only accepted if annotation processing is explicitly requested

3) 我无法生成嵌入所有必需库文件的单个输出 .jar 文件。我还认为,如果我可以避免嵌入整个库(它们重约 4 MB)并且实际上只使用我真正需要的 .class 文件,那将是很好的。然而我不知道该怎么做。你能给我一些关于如何做上述三件事之一的建议吗?

4

1 回答 1

1

您需要-classpath使用冒号分隔列表将您的 jar 列表立即放在参数之后:

javac -classpath library1.jar:library2.jar sourcefile.java 

您可以使用 Eclipse 通过以下方式生成单个输出 jar:

Export...->Java->Runnable JAR File->Next->Copy required libraries into a sub-folder next to the generated JAR.

然后您可以将新 jar 文件子文件夹的内容 jar 或使用:

javac -classpath sub_folder/*.jar sourcefile.java 
于 2012-09-25T14:02:17.150 回答