是否可以使用Oracle JDK编译java并在OpenJDK上运行代码?

时间:2012-07-24 10:59:47

标签: java cross-compiling jdk1.6 openjdk

那么可以在Windows 7机器上进行Java守护进程(Apache Daemon)的所有开发,然后在安装了OpenJDK的Ubuntu服务器上安装该服务(仍然需要搜索如何操作)吗? p>

如果是,我如何在两个系统上识别兼容的Java版本?我的意思是如果我在Windows上使用Java 1.6,那么在Ubuntu服务器上应该具有的兼容性最差的OpenJDK版本是什么?

4 个答案:

答案 0 :(得分:6)

大多数情况下是的,但对于极端情况,它取决于并且应该在与生产配置密切匹配的舞台上仔细测试。

以下是OpenJDK上发生的编译器崩溃和测试失败的示例,而在Oracle JDK构建时,源的相同快照为绿色:

http://travis-ci.org/#!/plokhotnyuk/actors/builds/1948184

http://travis-ci.org/#!/plokhotnyuk/calculator/builds/1948194

答案 1 :(得分:3)

Java字节代码是可移植的,可以使用具有相同或更新版本的任何JVM来执行。

答案 2 :(得分:0)

不,那不是,但你没有什么可担心的.Java是一个标准化的平台,你应该能够编译并运行它的任何实现。只要你记住这个版本。 Java 7软件不会完全在Java 6安装上运行。 Java 6软件完全适用于Java 7安装。

答案 3 :(得分:0)

如果您已经为Java 1.6编译,那么至少需要OpenJDK 1.6。在极少数情况下,Hotspot和OpenJDK不同,但由于Hotspot基于OpenJDK,因此您更有可能看到构建版本中的细微差别。

两个JVM都符合JLS规范,IMHO实际上是参考实现。 OpenJDK是开放标准,HotSpot被广泛用作商业标准。这些版本几乎完全相同。

如果这是一个真正令人担忧的问题,您可以在Ubuntu上安装相同版本的Hotspot。