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

时间:2019-03-21 09:35:17

标签: java eclipse jar executable-jar

Am正在通过直接从Java程序本身进行命令行调用来再现Eclipse的“ export runnable .jar文件”功能。 因此,这些命令应在Eclipse编译项目后执行。我需要这样做是为了更好地控制哪些文件最终存储在.jar中,并加快开发过程。

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

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

Process process = builder.start();

但是,我的项目通过Eclipse的类路径对话框将多个库(.jar文件)添加到了类路径。例如,我正在使用pi4j库。 我希望当eclipse编译并执行程序时,其内部目录和类结构(例如“ com.pi4j。***。class”)会被添加到“ bin”目录中。 但是它不存在,因此也永远不会以“ myjar.jar”结尾(运行.jar时出现类丢失错误)。

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

要从其他.jar库中导出.class文件,以便可以添加它们,我该怎么办?

非常感谢:)

1 个答案:

答案 0 :(得分:0)

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

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

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

  

导出/常规/ Ant构建文件

,您将获得一个build.xml脚本与Ant一起使用。