导入com.sun.image.codec.jpeg。*
image-processing
java
6
0

我在编译Java程序时遇到以下错误

[javac] ...\MyClass.java:33: package com.sun.image.codec.jpeg does not exist
[javac] import com.sun.image.codec.jpeg.*;
[javac] ^

我能做什么 ?

既然不赞成使用com.sun软件包,那么写映像文件的正确方法是什么。

参考资料:
Stack Overflow
收藏
评论
共 3 个回答
高赞 时间 活跃

通常,请尽量不要使用“ sun。 ”或“ com.sun。 ”程序包中的类,因为该程序包被视为实现细节,并且不属于Java API。

由于没有向后兼容性保证,因此在迁移到Java的新版本时,它们可能会引起问题。同样,当移至其他Java供应商(例如OpenJDK)时,它们也会引起问题。

这些类几乎总是由应该使用的Java API类包装。

请参阅: https//sonarcloud.io/organizations/default/rules?languages = java&open = squid%3AS1191&q = sun

收藏
评论

为什么在com.sun.image.codec.jpeg包中使用类?您不应该直接使用这些类: 为什么开发人员不应编写调用“ sun”包的程序

您的程序做什么?它只是尝试读取或写入JPG图像吗?使用ImageIO API非常简单。请参阅本教程: 编写/保存图像

补充 -如Java SE 7和JDK 7兼容性指南中所述,软件包com.sun.image.codec.jpeg已在Java 7中删除。

简介:非标准com.sun.image.codec.jpeg包已淘汰

说明: com.sun.image.codec.jpeg软件包是在JDK 1.2(1998年12月)中添加的,它是控制JPEG格式图像文件的加载和保存的非标准方式。该软件包从来都不是平台规范的一部分,并且已从Java SE 7发行版中删除。 Java Image I / O API已作为标准API添加到JDK 1.4版本中,并且不再需要com.sun.image.codec.jpeg软件包。

收藏
评论

使用JDK 7进行编译时遇到了这个问题。奇怪的是Eclipse没有显示此错误,只有javac了。可以在以下Stackoverflow答案中找到答案 :javac使用一个特殊的符号表,该表不包含所有Sun专有类,并且提供-XDignore.symbol.file可以解决问题。

当然,更好的解决方案是在不使用专有类的情况下重写代码,但是为了快速支持JDK 7,此选项有效。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号