首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导入com.sun.image.codec.jpeg。*

导入com.sun.image.codec.jpeg。*
EN

Stack Overflow用户
提问于 2009-12-15 19:00:59
回答 6查看 89.7K关注 0票数 36

我有一个Java程序,当我编译它时,我得到以下错误

代码语言:javascript
复制
[javac] ...\MyClass.java:33: package com.sun.image.codec.jpeg does not exist
[javac] import com.sun.image.codec.jpeg.*;
[javac] ^

我能做些什么?

既然com.sun包已被弃用,那么编写图像文件的正确方式是什么?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-12-15 20:20:32

为什么要使用com.sun.image.codec.jpeg包中的类?您不应该直接使用这些类:Why Developers Should Not Write Programs That Call 'sun' Packages

你的程序是做什么的?它只是尝试读取或写入JPG图像吗?有了ImageIO应用编程接口,这就非常简单了。请参阅本教程:Writing/Saving an Image

此外- Java SE 7 and JDK 7 Compatibility Guide中提到的com.sun.image.codec.jpeg包在Java7中已被删除。

简介:非标准com.sun.image.codec.jpeg包已停用

JPEG1.2(1998年12月)中添加了JPEG包,作为控制Description:格式图像文件加载和保存的非标准方法。这个包从来都不是平台规范的一部分,并且已经从Java SE 7版本中删除了。Java Image I/O作为标准API添加到JDK1.4发行版中,消除了对com.sun.image.codec.jpeg包的需要。

票数 34
EN

Stack Overflow用户

发布于 2012-10-26 14:47:54

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

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

票数 56
EN

Stack Overflow用户

发布于 2019-07-02 20:22:00

一般来说,尽量不要使用“sun”中的类。或者“com.sun”包,因为此包被视为实现细节,而不是Java API的一部分。

当迁移到Java的新版本时,它们可能会导致问题,因为没有向后兼容性保证。类似地,当迁移到不同的Java供应商时,它们也会带来问题,比如OpenJDK。

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1906673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档