java - 如果我用 IBM JDK 编译并用 Sun JRE 运行,有什么问题吗?

标签 java

用 IBM JDK 编译,用 Sun JRE 运行,会不会有什么问题 假设我们使用相同的 IBM 和 SUN 主版本

最佳答案

免责声明:我只关注您的问题:

Are there any issues if I compile with IBM JDK and run with Sun JRE?

简短的回答:没有。

解释:

是的,“IBM 的 Java”和“Oracle 的 Java”之间存在重要差异,但在您的情况下,您只是生成字节码(编译),这是 JVM specification 中强烈指定的内容之一。 .因此,如果字节码被正确编译,那么它应该可以在任何 JVM 中运行。

注意事项 #1:我假设您仅使用 IBM 的编译器编译 java 代码,而不是编译和测试运行 IBM 的 java 可执行文件;如果是,那么是的,你会遇到问题,因为执行的行为不会相同(一个 JVM 可能比另一个使用更多的内存,等等)有关此主题的更多信息,请按照@ForguesR 和@Makoto 已经提供的链接在他们各自的评论中。

注意事项 #2:这并不意味着 IBM 的编译器一定会生成与 Oracle 的相同的字节码。这只是意味着两者都会产生适当的字节码以在任何 JVM 中执行。

注意事项 #3:我还假设编译器和 JRE 都可以使用相同的库、依赖项等

关于java - 如果我用 IBM JDK 编译并用 Sun JRE 运行,有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26395602/

相关文章:

java - Java中如何用逗号和空格分割表达式?

java - RxJava 忽略 onNext

java - 将图像保存到远程服务器

java - RDF数据集: write a DataSource into a file

java - 如何使用 upstart 正确启动 gradle 生成的脚本?

java - 防止用户打开同一个 Web 应用程序的多个窗口

java - 如何使用 itextsharp 将长文本定位并换行到下一行?

java - Jboss 4.2.3 的 Servlet 规范

java - 无法在java中生成64位长值

java - 如何通过 Mule HTTP 监听器获取准确的特殊字符