【发布时间】:2015-08-08 03:05:46
【问题描述】:
我创建了一个使用 GUI 的小型 Java 应用程序,我的一些使用 Windows 的朋友要求我将其发送给他们。我想在安装等方面尽可能多地避免它们,所以我想知道哪个是最好的方法。
所以我从 NetBeans 构建了 .jar,当我运行它时,它运行良好。从那里开始,我尝试为 Windows 生成一个可移植的 .exe 文件,我可以将其发送给它们,并且它们可以在没有任何先前步骤的情况下直接打开(前提是它们具有 JRE)。所以我下载了 JSmooth、Jar2Exe 和 Launch4j,所有这些都生成了一个 .exe 文件,但是一旦我更改了它的位置,它就不再工作了,所以我认为这与 .jar 文件相比没有任何优势。
所以我想知道的是:有什么方法可以将所有内容打包到一个 .exe 中,无论它位于何处,都可以在 Windows 中始终运行?
以防万一:项目使用添加的库 JLayer(用于 Mp3)。
谢谢!
P.S.:总的来说,我是编程和计算机的新手,所以请耐心等待,不要想当然。
【问题讨论】:
-
有几个 exe 包装器可用,我个人使用 exe4j,但它是商业的,但在我需要它的时候,它是唯一可用的 64 位包装器。您还可以使用许多安装程序包之一,例如 izpack。有些甚至还提供了安装 JVM 的功能,但我已经养成了将我希望人们使用的 JVM 嵌入到我的程序中的习惯;)
-
" 但是一旦我更改了它的位置,它就不再起作用了," - 不,它们起作用了- 你错过了其他东西。虽然从问题中不清楚..
-
我的意思是,当我从最初创建的文件夹中运行生成的 .exe 文件时,它可以工作,但是一旦我更改它的位置(例如,通过将其复制到另一个文件夹或拖动它到桌面)我点击图标,没有任何反应,.exe 没有启动应用程序。我希望现在很清楚。也许我在生成 exe 文件之前缺少在 exe 包装器的选项中设置一些东西。
-
jar 是否依赖文件夹中的文件?移动它的位置可能会导致它找不到文件,这些文件没有绝对路径被指定为在 jar 的目录中。
-
我认为应用程序在转移到另一个位置时无法运行的问题不在包装器本身。如果使用绝对路径或相对路径,则在设置中。
标签: java windows jar exe jsmooth