Jbuilder2006帶來的麻煩事(JDK 版本問題)
Jbuilder2006自帶的jdk版本是1.5的, 公司伺服器上的jdk是1.4的版本, 以前的程式都是基於1.4版本開發的, 由此就產生了一些jdk版本衝突的問題(俺們的程式都是在自己的機器上寫好程式, 測試通過之後, 再提交到cvs, 伺服器再從cvs上update下來編譯)。
由於伺服器使用的是1.4的jdk, 所以我在本機上也裝了個1.4的jdk, 每次新建工程, 我都把jbuilder相關的環境改成jdk1.4, 使用1.4的jvm, 這樣開發一般的application也沒有出現什麼問題, 程式碼提交到伺服器上也能順利編譯。 但是最近有一個應用需要使用tomcat, 在建立webModule的時候, 我選擇4.1 的tomcat, 然後編寫servlet程式, 但是很奇怪, 我發現jbuilder把我這個工程的屬性改了, jdk變成1.5了, 馬上改回1.4的, 然後在jbuilder上編譯測試, 沒有問題, 部署到本機的tomcat( 4.1)上測試,也通過, 於是就部署到伺服器上, 並且把程式碼提交到cvs,然後再伺服器上把ant的編譯指令碼加上,暫時沒有問題。
後來發現程式有點小問題, 修改了一個檔案(不是servlet), 然後提交, 在伺服器上把程式碼update下來之後, 用ant編譯, 出現以下問題:
compile:
[javac] Compiling 11 source files to /... .../WEB-INF/classes
[javac] /... .../myJavaFile.java:17: cannot access java.lang.Object
[javac] bad class file: /home/j2sdk1.4.1_01/jre/lib/rt.jar(java/lang/Object.class)
[javac] class file has wrong version 48.0, should be 47.0
[javac] Please remove or make sure it appears in the correct subdirectory of the classpath.
[javac] private String str = null;
[javac] ^
[javac] 1 error
BUILD FAILED
/... .../build.xml:72: Compile failed; see the compiler error output for details.
把工程部署到本機的tomcat上,服務可以起來, 於是在瀏覽器上輸入servlet的url測試, 出現以下錯誤:
java.lang.UnsupportedClassVersionError: com.... .../MyJavaFile (Unsupported major.minor version 48.0)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
鬱悶,google去, 找到一個:
(原文轉自 http://www.360doc.com/showWeb/0/0/31881.aspx )
1.java.lang.UnsupportedClassVersionError: com/mdcchina/userinfo/logic/UserManager (Unsupported major.minor version 49.0)提示如上的錯誤,很是鬱悶
經過研究和比較在兩個不同環境下的編譯執行,終於發現這個主要是由於我的機子上安裝了兩個不 同版本的JDK導致的,我想很多的朋友在嘗試新的JDK的時候,可能不會刪除1.4的版本,但是要注意的是要將JAVA_HOME, CLASS_PATH,PATH等等的環境變數都修改成相關的JDK1.5的目錄下面去,因為1.5相對於以前的版本的變化比較大.
2.上面的問題排除後,在執行TOMCAT5.0時候由出現瞭如下的錯誤:
2005-11-17 19:38:47 StandardWrapperValve[action]: Servlet.service() for servlet action threw exception
org.apache.jasper.JasperException: Unable to compile class for JSP
Generated servlet error:
C:/application/Tomcat 5.0/work/Catalina/localhost/mlinkweb/org/apache/jsp/layouts/layout_005findex_jsp.java:7: cannot access java.lang.Object
Generated servlet error:
bad class file: C:/application/Java/jdk1.5.0/jre/lib/rt.jar(java/lang/Object.class)
class file has wrong version 49.0, should be 48.0
Please remove or make sure it appears in the correct subdirectory of the classpath.
public final class layout_005findex_jsp extends org.apache.jasper.runtime.HttpJspBase
^
1 error
這個問題這是讓我鬱悶之極啊(^_^)
最後在SUN的JAVA論壇裡面找到了答案,只要將JDK1.5的LIB下面的TOOLS.JAR覆蓋TOMCAT5.0目錄/common/lib下面的tools.jar,然後重啟TOMCAT5.0就可以了
這 位老兄的問題和我有點類似,不過他的是是在1.4下升到1.5的時候出的問題, 可是我本意是在1.4下開發, 1.4下執行, 無奈我機器上有兩個版本的jdk, 不知道怎麼的給混到1.5 的版本上了(俺想學習一下1.5 的特性, 不想刪除), 而且我的伺服器是1.4的,這個我也不能更改, 真是鬱悶, 我試過重新新建工程, 然後把程式碼copy過去, 編譯出來的class放到伺服器上可以執行, 可是程式碼還是不能在伺服器上編譯,而且我的程式碼也沒有使用過1.5的特性, 真不明白是怎麼回事, 讓俺五一好生鬱悶。
相關文章
- CORBA的麻煩事... (轉)ORB
- java的new真的給我們帶來了麻煩嗎?Java
- Linux更換jdk版本,java -version還是原來的版本問題LinuxJDKJava
- 陳老師的多校聯合 D題 字串處理起來挺麻煩字串
- 數字時代,如何搞定資訊儲存這件麻煩事?
- 麻煩各位高手幫忙
- 動態庫的麻煩之處
- 板橋,J道上搜尋有問題呀,搜尋出來的都是亂碼!麻煩你解決一下!
- 我正在改JIVE,但碰到很麻煩的問題,希望能幫忙解決
- 關於分散式事務帶來的問題及解決方案分散式
- 一個比較麻煩的限流需求
- 搬家別怕麻煩 這些智慧產品能隨時帶走
- Mac上檔案太多找起來很麻煩?試試這個Mac
- 修改使用者密碼引來的一系列麻煩密碼
- clone 淺克隆帶來的問題
- 部署伺服器jdk版本相容問題伺服器JDK
- HTML高亮關鍵字真麻煩HTML
- 最近寫了幾個 Laravel 擴充套件用來減少工作的麻煩Laravel套件
- JDK的第三個LTS版本JDK17來了JDK
- SpringCloud微服務帶來的問題SpringGCCloud微服務
- Grails消滅Dao帶來的問題AI
- 記錄一次非常麻煩的除錯除錯
- 寫最少的程式碼,避免給自己找麻煩
- 寫最少的程式碼 避免給自己找麻煩
- 黑客原則:不能仇視社會,不能給別人製造麻煩,不能給別人帶來損失黑客
- 基礎-vuex真是太麻煩了Vue
- 第14講 | HTTP協議:看個新聞原來這麼麻煩HTTP協議
- 使用Datomic實現沒有麻煩的事件溯源事件
- 第八章 分散式系統的麻煩分散式
- linux下中文安裝oracle--麻煩LinuxOracle
- 請問如何在jive中安裝SQL2000,麻煩來看一下我錯在哪SQL
- 如何分析因為 SAP UI5 版本差異帶來的問題試讀版UI
- Jbuilder2006中使用1.5以下JDK的解決方法UIJDK
- onethinkphp新建模組後,無法使用普通使用者登入問題,麻煩幫忙看下。PHP
- jdk版本導致tomcat,eclipse無法啟動的問題JDKTomcatEclipse
- JBuilder2006設定執行起始頁問題UI
- 麻煩把JS的事件環給我安排一下!!!JS事件
- 歸檔放在閃回區帶來的問題