1

我有一个 Java 程序,假设它叫做 MyApp.jar

要在 Linux 上运行它,我只需编写一个名为 myapp.sh 的 shell 脚本,它只需运行java -jar MyApp.jar并双击它即可。一切正常。

在 Windows 7 上,我不能假设该java命令将在每个人的路径中(如果这就是您在 Windows 上所说的),所以我必须有一个解决方法并执行一些操作,例如在其中创建一个批处理脚本:"C:\Program Files (x86)\Java\jre6\bin\java.exe" -jar MyApp.jar,这显然是一个糟糕的解决方案......它在 XP 或 Vista 上不起作用。但它适用于大多数Windows 7 机器。

我的应用程序以 .zip 文件的形式发布,用户将其解压缩到 MyApp 文件夹中,然后理想情况下双击某些内容来调用程序。到目前为止,它有一个供 Linux 用户双击的 .sh 脚本和一个供 Windows 7 用户使用的批处理脚本(它在大多数情况下都有效)。它在自己的目录 (MyApp) 中创建和使用文件。

以跨平台方式调用此程序的最佳方法是什么?

谢谢!

4

3 回答 3

3

正如 biziclop 所提到的,Java Web Start通常用于安装/启动/更新 Java 桌面应用程序。

就 JRE 而言,通常使用deployJava.js上面该页面的链接就足以确保安装最少必要的 JRE,并使用 JNLP 文件中的元素指定应用程序支持的任何 JRE 微版本。

应用程序启动

当操作系统支持时,JWS 可以安装桌面快捷方式和菜单项。这些可以在启动文件中指定,或者在运行时使用 JNLP API 的服务添加/删除。

于 2012-08-14T23:34:15.567 回答
1

Java 应用程序需要在目标系统上安装具有特定版本的 Java 运行时环境。

在我看来,最方便的方法是将所有库和文档放在一个存档中,并为 windows 和 *nix 系统添加启动脚本。

您也可以将 JRE 与您的应用程序一起发布,但是您必须支持针对不同平台的构建...

于 2012-08-14T22:02:54.637 回答
1

如果您的应用程序无法交付 Java,那么使用 JAVA_HOME 启动它可能是一个很好的解决方案。它设置在,嗯......不是所有系统,而是许多系统。绝对不应该使用 C:\Program Files (x86) ... 使用环境变量 %ProgramFiles% 会更好

于 2012-08-14T22:07:24.273 回答