3

我创建了一个 java 应用程序并将其打包到 Windows 平台上的 jar 文件中。现在我想在 Debian Linux 上部署那个 jar 文件。

  1. 相同的 jar 文件是否适用于 Debian Linux?

  2. 在 Windows 中用于从命令提示符执行 jar 文件的命令是否与 Debain Linux 相同?

IE

java -jvm "MyJar.jar"

上述命令是否适用于 Debian Linux?

4

7 回答 7

7

一般来说,它应该。然而,这取决于几个条件:

  • 如果您使用本机代码 (JNI),您必须确保本机库可用于目标平台
  • 您必须确保没有硬编码 Windows 特定的路径(事实上,您甚至应该注意特殊字符,例如路径分隔符 : vs. ;)
  • 您不能使用运行时特定代码
于 2009-11-07T14:43:25.163 回答
6

是的。

jar 文件可以跨平台移植,并且 jar 命令的语法在 Linux 和 Windows 上是相同的。


编辑:除非有充分的理由不这样做,否则您应该使用最新版本的 Sun Java。安装说明:http ://wiki.debian.org/Java/Sun

于 2009-11-07T14:39:10.537 回答
4

1. 相同的 jar 文件是否适用于 Debian Linux?

是的。因此 Java 的本质(可移植代码)

2. 在 windows 中用于从命令提示符执行 jar 文件的命令是否与 Debain Linux 相同?

java -jar "MyJar.jar"

于 2013-01-31T13:56:30.657 回答
2

是的,java 的主要思想是它(应该)在不同的操作系统上运行,只要安装了 java 运行时。

虽然我从未听说过 -jvm 标志。

如果你想启动一个 jar 文件,你应该使用 -jar 标志。

java -jar "MyJar.jar"

您还可以阅读Write once run anywhere原则。

于 2009-11-07T14:38:56.607 回答
2

我在 mac 上进行开发,但在 linux 和 windows 环境中运行没有任何问题。关键是不要使用 JNI,正如其他人提到的那样,我会使用java -jar "MyJar.jar"

于 2009-11-07T15:08:28.763 回答
1

几乎。采用:

java -jar "MyJar.jar"

当然,您不应该使用任何诸如 JNI 或运行时的东西

于 2009-11-07T14:39:45.343 回答
1

是的,尽管您可能想要这样做,但在 Linux 中:

java -jar YourJar.jar

代替:

java -jvm YourJar.jar
于 2009-11-07T14:40:07.823 回答