2

我有一个巨大的 JAR 文件,它是用Maven Shade插件创建的。

我用 运行它java -jar foo.jar,然后我的 UI 打开。现在我想执行*.exe文件,它也在那个 JAR 文件中,我该怎么做?

我尝试将 exe 放入我的类路径并从那里运行它,但在尝试后我发现类路径实际上是我的 JAR 所在的位置。

有什么建议么?

在这里找到了这个东西,但这真的是最好的解决方案吗?看起来工作量很大,我想我在这里有不同的情况,因为我可以自己定义 exe 的位置,而 JAR 是由我创建的。

运行打包在jar中的exe

为什么我需要这个?

我想给用户一个可以运行的单个文件可执行文件,但我的程序正在使用 *.exe。我应该把 exe 放在我的 jar 旁边,会有 2 个文件还是有我的要求的解决方案?

4

2 回答 2

4

将文件复制到临时位置并运行它是可行的方法。您链接到的答案做了更多必要的工作,因为您可以将 exe 文件作为 InputStream 并将其复制到具有 Apache Commons IO 等实用程序的文件中FileUtils.copy(in, out)

请参阅如何将文本文件从 jar 复制到 jar 外部的文件中?例如。

于 2012-09-21T13:55:46.093 回答
2

这与位置无关,而是关于您需要告诉操作系统运行 exe 的事实,不幸的是,您无法通过在 jar 中提供位置来做到这一点。

于 2012-09-21T13:54:11.273 回答