sun java和openjdk区别,Sun JDK和open JDK之间的区别

I am running into errors such as the following:

Exception in thread "Thread-1" java.lang.IncompatibleClassChangeError:

Found class com.sun.image.codec.jpeg.JPEGImageEncoder, but interface

was expected

I have built my JAR's using Sun JDK and I am running on OpenJDK. I am kind of stuck with this environment.

Is there an easy way around this? Do I have to compile and run the code on OpenJDK?

解决方案

By the looks of it, Jasper Reports is drilling down and using internal classes / methods that it shouldn't use. This apparently doesn't work on all platforms ... which is not surprising because Sun / Oracle specifically state that doing this is liable to break.

What should you do?

Check the Supported Platforms datasheet. I note that it lists OpenJDK 6, but not OpenJDK 7. Maybe you should stick with the JasperSoft supported platforms.

I found this page which seems to talk about this problem ... or something rather similar ... and offers a workaround.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: OpenJDK是一个开源的Java虚拟机实现,它的代码可以免费获取和使用。OpenJDK是由社区维护的,没有商业公司控制,因此在许多情况下它可以作为Sun JDK的替代品。 Sun JDK是由Sun Microsystems(后来被Oracle收购)开发的Java虚拟机实现。它比OpenJDK更早出现,并且在过去一直是Java开发的首选。 总的来说,OpenJDKSun JDK在功能上是非常相似的,因此对于大多数用途来说,它们是可以替代使用的。但是,OpenJDK是开源的,并且由社区维护,因此它可能更加灵活和可靠。 ### 回答2: OpenJDKSunJDK是两个Java开发工具套件。它们的主要区别在于它们的开发和支持背景。 SunJDK是由Sun Microsystems(后被Oracle收购)开发和维护的Java开发工具套件。它是最早、也是最广泛使用的Java开发工具之一。SunJDK是Oracle官方支持的版本,包含了所有Java开发所需的工具、库和运行时环境。它提供了完整的Java SE(Standard Edition)规范和其他的专有扩展功能。SunJDK有长期的技术支持和更新,可以认为它是Java开发的稳定版本。 OpenJDK是一个开源项目,由社区维护和开发。它最初是由Sun Microsystems创建,后来Oracle将其完全开源。OpenJDK包含了基本的Java开发工具和运行时环境。它是Java开发的参考实现,并遵循Java SE规范。OpenJDK的开源性使得开发者可以更加方便地参与到Java开发的过程中,为Java提供新的功能和改进。OpenJDK也受到广泛的支持和使用。 总结来说,OpenJDKSunJDK的主要区别在于开发和支持的背景。SunJDK是由Oracle官方支持的版本,已经经过了长期的技术支持和更新。而OpenJDK是一个开源项目,由社区维护和开发,可以更加容易地参与到Java开发中。两者提供的功能基本相同,但对于企业和开发者来说,选择哪个取决于其对支持和开源的偏好。 ### 回答3: OpenJDKSun JDK是两种不同的Java开发工具包,下面是它们之间区别: 1. 来源:SunJDK是由Sun Microsystems开发的,而OpenJDK是由开源社区维护的。 2. 许可证:SunJDK在过去采用了Sun's Binary Code License (BCL) 许可证,而OpenJDK采用了GNU通用公共许可证 (GPL) 许可证,这使得OpenJDK属于自由软件。 3. 代码实现:SunJDK最初是由Sun Microsystems封闭开发的,然后将部分代码开源,而OpenJDK是源自Sun JDK的整个源代码树。OpenJDKJava SE的官方参考实现。 4. 社区支持:OpenJDK是一个开源项目,拥有由全球开发者社区维护的活跃社区,可以接受来自大量开发者的贡献和反馈。而SunJDKSun Microsystems被Oracle收购后,社区支持逐渐减少。 5. 更新和维护:SunJDK在Oracle接手后仍然继续更新和维护,但现在主要关注OpenJDK的发展。OpenJDK是Oracle主导的发展方向,尽管仍有其他组织和社区的贡献。 总体而言,OpenJDKSunJDK在功能和性能上没有明显的区别。主要的区别在于许可证、代码实现、社区支持和开发方向。无论是使用OpenJDK还是SunJDK,开发人员都可以获得Java的核心功能和API。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值