使用ANT編譯項目報錯 com.sun.image.codec.jpeg does not exist 解決方法


項目開發中在對圖片進行裁切處理的時候,有時候是會使用到 com.sun 包下的類時。

假設項目使用ant編譯,會出現錯誤 com.sun.image.codec.jpeg does not exist 這是由於在JDK1.7+時,Oracle不同意使用sun.*的jar


詳細參見http://www.oracle.com/technetwork/java/faq-sun-packages-142232.html 。



項目代碼已經寫好,且直接執行能夠正常使用,僅僅是使用ant編譯會出現錯誤,如今不打算更換項目的詳細實現代碼。不能更換JDK版本號,所以做例如以下處理就可以:

在ANT中明白指定使用這個rt.jar 。例如以下:

	<!-- 使用ant編譯。在使用到com.sun包下類時。須要指定rt.jar文件的位置 -->
<path id="JAVA.rt">
		<pathelement location="${frameone.runtime}/common/rt.jar" />
	</path>
 
        

	<path id="Project.classpath">
		<path refid="JAVA.rt" />
		<fileset dir="${project.lib.dir}" includes="*.jar" />
	</path>

	<target name="build-project" depends="init">
		<echo message="${ant.project.name}: ${ant.file}" />
		<javac includeantruntime="false" debug="true" debuglevel="${debuglevel}" destdir="${dist.classes.dir.cms}" source="${source}" target="${target}" encoding="UTF-8">
			<src path="${src.dir}" />
			<classpath refid="Project.classpath" />
		</javac>
	</target>


事實上上面的方法,可能會不起作用。我們能夠指定javac 參數來忽略這種錯誤,例如以下:

<javac includeantruntime="false" debug="true" debuglevel="${debuglevel}" destdir="${build.dir}/WEB-INF/classes" source="${source}" target="${target}" encoding="UTF-8">
<src path="${src.dir}" />   
<compilerarg line="-XDignore.symbol.file"/>
<classpath refid="Project.classpath" />
</javac>





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM