1

我正在尝试构建一个跨平台(vista、xp、mac、Linux)。我需要将应用程序放在格式化为 FAT-32 的 USB 驱动器中,它应该可以在任何操作系统计算机上运行。计划使用 Java/JavaFx 来做。

任何建议我们如何在多个平台上运行。

嗨,任何人都可以建议使用 uber-jar 来满足上述要求。会不会很合适。

4

1 回答 1

2

有几点需要考虑:

  • USB 必须使用与您需要使用的所有操作系统兼容的文件系统进行格式化。
  • Java 应用程序可以在任何能够运行 Java 的操作系统上运行,但每个操作系统都需要不同的 Java 运行时。有一个适用于 Linux 的 Java 运行时,一个适用于 Windows,一个适用于 OSX,等等。

我的建议是定义您想要支持的操作系统,并在 USB 的根目录上为每个操作系统创建启动器脚本。例如,您至少会有几个像:myapp.cmd(用于 Windows)、myapp.sh(用于 Linux)等。

此外,您可能希望在同一个 USB 中拥有不同的 Java 运行时,因此您可以使用启动器脚本执行 Java 应用程序,并在 USB 文件系统中使用相应的 JRE 运行它。

启动器脚本中的一个转折是以某种方式检查操作系统是否已经有可用的 JRE(比如检查环境中的变量 JAVA_HOME,或检查“java -version”的输出)并采取相应的行动(尽管,运行 Java来自您自己的 JRE 的应用程序会更安全)。

于 2014-07-31T13:36:23.740 回答