[英]Compile JSP classes - A workflow of errors between java and tomcat
我在eclipse中做了一個JSP網頁/應用程序。 由於我有一些問題,我想改變,所以我將我的文件(* .java和* .jsp)備份到另一個文件夾,忘記了eclipse。
Builds in eclipse: OK
現在,要在不使用eclipse的情況下編譯我的代碼,我會這樣做:
javac -d ./Server/WEB-INF/classes/ ./src/tfg/lti/Config/TextFileWorker.java
javac -d ./Server/WEB-INF/classes/ -cp ./Server/WEB-INF/classes/ ./src/tfg/lti/Config/Setup.java
javac -d ./Server/WEB-INF/classes/ -cp ./Server/WEB-INF/classes/ ./src/tfg/lti/UI/Painter.java
Builds with my code: OK
但是,如果我嘗試在Web瀏覽器上打開我的應用程序,我會從Tomcat獲得:
Estado HTTP 500 -
type Informe de Excepción
mensaje
descripción El servidor encontró un error interno () que hizo que no pudiera rellenar este requerimiento.
excepción
javax.servlet.ServletException: java.lang.UnsupportedClassVersionError: tfg/lti/UI/Painter : Unsupported major.minor version 51.0 (no puedo cargar clase tfg.lti.UI.Painter)
翻譯西班牙語部分:
Status HTTP 500 -
type exception report
message
description The server found an internal error () that made it couldn't fill this requeriment
exception
javax.servlet.ServletException: java.lang.UnsupportedClassVersionError: tfg/lti/UI/Painter : Unsupported major.minor version 51.0 (can not load the class tfg.lti.UI.Painter)
然后,根據如何修復java.lang.UnsupportedClassVersionError:不支持的major.minor版本 ,我嘗試構建它來更改目標,類似這樣(對所有文件):
javac -target 1.5 -d ./Server/WEB-INF/classes/ ./src/tfg/lti/Config/TextFileWorker.java
Notice: the target version was choosen just to try, didn't know what value should be correct
問題1:因為我以前用eclipse構建它,我不知道以前使用過哪個目標,但我認為它應該使用最后一個(1.7)。 現在我不明白為什么不是。 項目設置我猜?
然后,當再次構建它時,我得到了下一個錯誤:
javac: target release 1.5 conflicts with default source release 1.7
所以現在,基於Topic,請看最后的答案 ,一個-source 1.5
被添加到javac,有類似的東西:
javac -source 1.5 -target 1.5 -d ./Server/WEB-INF/classes/ ./src/tfg/lti/Config/TextFileWorker.java
但后來,我得到了最后一個錯誤:
warning: [options] bootstrap class path not set in conjunction with -source 1.5
1 warning
所以最后,基於bootstrap類路徑沒有與-source 1.6 3一起設置 ,並“學習”如果我確定我沒有使用新SDK中的任何內容,我可以忽略此警告。
因為我不是,我不想忽略它,但仍然不知道eclipse如何構建我的項目,我應該如何構建它以便能夠在我的tomcat服務器上再次運行它 。
一些數據: Tomcat server: version 6
Java JDK: 1.75
java -version output:
java version "1.7.0_75"
Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
Java HotSpot(TM) Server VM (build 24.75-b04, mixed mode)
我終於設法解決了。 正如SMA告訴我的那樣,我正在使用JDK 7構建它,並使用JDK6運行它。 但我不知道它是如何工作的,所以我不得不尋找它。
首先,我設法注意到使用Unsupported major.minor版本51.0 。 但是,正如您可以看到他們使用舊版本進行編譯,但我使用舊版本執行它。
然后,基於更改Tomcat使用的JDK ,我將JAVA_HOME(它甚至沒有在/etc/default/tomcat6
文件上設置)修改為JDK7。 為此,我添加到文件:
JAVA_HOME=/usr/lib/jvm/jdk1.7.0_75
然后重啟tomcat(6)。
完成這些更改后,它終於奏效了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.