我为其他人开发的cmd程序创建了一个简单的SWING gui。要运行此程序,我执行以下行:

Process convertProcess = Runtime.getRuntime().exec("jlyt\\prog\\com_win\\jlyt.bat " + selectedFiles.getName());


jlyt文件夹与src文件夹位于同一文件夹(我正在使用IntelliJ)。
通过IDE运行时,一切正常,但是当我运行创建的jar时,效果不佳。我试过从IntelliJ保存到的目录以及jlyt文件夹的目录运行它。
我没有将外部程序(在jlyt文件夹内)添加到我的jar中,因为它很重。我希望我的jar与原始程序一起分发,而不要包含所有内容。

任何想法我应该如何建立我的罐子?

谢谢。

最佳答案

我知道为什么将/ jlyt放在/ src中,它在IDE中很方便。 / jlyt将作为资源复制到/ bin / classes或任何IDE目标中,并且可以使所有内容在IDE中正常工作。

当您对应用程序进行JAR时,通常会将/ jlyt添加到JAR中。但是,Windows无法访问它。我假设您在尝试运行时将/ jlyt副本放置在与JAR相同的文件夹中。

第一步,在终端中,将当前目录设置为包含JAR和/ jlyt的文件夹。由于您在exec()中指定了相对路径,因此足以运行所有内容。

您也可以尝试创建JAR的快捷方式,因为它是可执行的,并将工作目录设置为包含JAR的文件夹。

10-06 11:29