通过命令行创建可运行的.jar时,添加其他.jar库

问题描述 投票:0回答:1

我正在使用直接来自java程序本身的命令行调用来重现Eclipse的“export runnable .jar file”功能。因此,这些命令应在Eclipse编译项目后执行。我需要这个来更好地控制文件在.jar中的结果并加快开发过程。

以下命令成功打包“bin”目录中的结构和类,并使用正确的主类创建manifest.mf文件,以便myjar.jar可运行。

ProcessBuilder builder = new ProcessBuilder("jar", "cvfe", "myjar.jar", "main.MainControler", "-C", "bin", "/");

Process process = builder.start();

但是我的项目有几个库(.jar文件)通过Eclipse的类路径对话添加到类路径中。例如,我正在使用pi4j库。我预计当eclipse编译并执行程序时,它的内部目录和类结构(类似“com.pi4j。***。class”)将被添加到“bin”目录中。然而它并不存在,因此永远不会在“myjar.jar”中结束(并且在运行.jar时我会遇到类缺失错误)。

当我使用Eclipse的导出功能时,文件就在那里。

如何从其他.jar库中导出.class文件以便添加它们,我需要做什么?

非常感谢提前:)

java eclipse jar executable-jar
1个回答
0
投票

您的问题陈述不是很清楚,并给我的印象是您正在尝试做一些不应该做的事情。

首先:如果您不想使用Eclipse构建项目,那么请避免使用它来执行工作的第一部分(即编译):您可以从命令行执行整个过程,这将为您提供更多控制构建过程。

第二个建议:不要重新发明轮子。如果要从命令行构建,可以使用AntMaven。特别是您可以使用Eclipse生成一个Ant构建脚本,其执行类似于“export runnable .jar file”,然后您可以根据需要自定义该脚本:在Eclipse中右键单击该项目,然后选择

导出/常规/ Ant构建文件

你会得到一个与Ant一起使用的build.xml脚本。

© www.soinside.com 2019 - 2024. All rights reserved.