我有一個Java程序 當我編譯它,我收到以下錯誤進口的com.sun.image.codec.jpeg。*
[javac] ...\MyClass.java:33: package com.sun.image.codec.jpeg does not exist
[javac] import com.sun.image.codec.jpeg.*;
[javac]^
我能做些什麼?
現在不推薦使用com.sun軟件包,編寫映像文件的正確方法是什麼?
我有一個Java程序 當我編譯它,我收到以下錯誤進口的com.sun.image.codec.jpeg。*
[javac] ...\MyClass.java:33: package com.sun.image.codec.jpeg does not exist
[javac] import com.sun.image.codec.jpeg.*;
[javac]^
我能做些什麼?
現在不推薦使用com.sun軟件包,編寫映像文件的正確方法是什麼?
爲什麼在包com.sun.image.codec.jpeg
中使用類?你不應該直接使用這些類:Why Developers Should Not Write Programs That Call 'sun' Packages。
你的程序做了什麼?它只是試圖讀取或寫入JPG圖像?這對於ImageIO
API非常簡單。請參閱本教程:Writing/Saving an Image。
加法 - 如Java SE 7 and JDK 7 Compatibility Guide中所述,已在Java 7中刪除了包com.sun.image.codec.jpeg
。
梗概:非標準
com.sun.image.codec.jpeg
包被退役描述:在JDK 1.2(1998十二月)溶液中加入的
com.sun.image.codec.jpeg
包作爲控制加載和保存的一個非標準的方式的JPEG格式圖像文件。這個軟件包從來不是平臺規範的一部分,它已從Java SE 7版本中刪除。 Java Image I/O API作爲標準API添加到JDK 1.4發行版中,並且無需使用com.sun.image.codec.jpeg
軟件包。
您使用的是哪個JDK?我認爲這個軟件包不是必需的,只會在Sun的JDK中提供。 This discussion解釋。
如果您真的想使用它,您可以下載jar文件並將其包含在您的路徑文件中。
根據docs:
注意在的com.sun.image.codec.jpeg包中的類都沒有核心的Java API的一部分。它們是Sun JDK和JRE發行版的一部分。雖然其他許可證持有者可能選擇分發這些類,但開發人員不能依賴於非Sun實施中的可用性。我們期望等效功能最終將在覈心API或標準擴展中提供。
看起來像你正在使用已被替換的東西。也許你在使用Java 7?
Here似乎是描述這一點,以及在哪裏可以找到適當的替代品。
我在使用JDK 7編譯時遇到了這個問題。足夠奇怪的Eclipse沒有顯示這個錯誤,只有javac做了。答案可以找到in this Stackoverflow answer:javac使用一個不包含所有Sun專有類的特殊符號表,並且提供-XDignore.symbol.file
使問題消失。
當然,更好的解決方案是在不使用專有類的情況下重寫代碼,但爲了快速支持JDK 7,此選項有效。
使用Maven:使用maven-compiler-plugin的版本3.1,然後使用
您可以像使用'
@mainze如何通過命令提示符添加它?我需要將它應用於我在linux下部署在tomcat中的web應用程序。 – 2015-07-10 11:41:58
是的,不幸的是,使用ImageIO讀取JPEG會慢得多 – 2012-04-03 12:13:29
ImageIO不適用於CMYK-JPEG。 – AvrDragon 2012-06-11 17:10:37
如果您正在編譯自己的代碼,這只是一個選項。這並非總是如此。沒有人想要去重新編寫一個程序來編譯它。正確的答案是@mainzelM(寫作時下方)。 – mjaggard 2012-11-21 13:47:29