2016-05-12 29 views
0

我有Tomcat8.exe這種奇怪的情況在Windows 10Tomcat8.exe爲什麼以與Windows環境變量中設置的JAVA_HOME不同的JAVA_HOME啓動?

我的JAVA_HOME環境變量,在JDK 1.8路徑Windows系統環境點定義:

JAVA_HOME=C:\Program Files\Java\jdk1.8.0_65 

當我運行「C:\ Program Files文件\ Apache軟件基金會\ Tomcat的8.0 \ BIN \ Tomcat8.exe 「服務器與另一JDK開始,我可以在catalina.log看到:

12-May-2016 08:57:28.250 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version:  Apache Tomcat/8.0.30 
12-May-2016 08:57:28.253 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:   Dec 1 2015 22:30:46 UTC 
12-May-2016 08:57:28.254 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number:   8.0.30.0 
12-May-2016 08:57:28.254 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:    Windows 8 
12-May-2016 08:57:28.255 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:   6.2 
12-May-2016 08:57:28.255 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:   amd64 
12-May-2016 08:57:28.255 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:    C:\Program Files\Java\jdk1.7.0_79\jre 
12-May-2016 08:57:28.256 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:   1.7.0_79-b15 
12-May-2016 08:57:28.256 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:   Oracle Corporation 
12-May-2016 08:57:28.256 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:   C:\Program Files\Apache Software Foundation\Tomcat 8.0 
12-May-2016 08:57:28.257 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:   C:\Program Files\Apache Software Foundation\Tomcat 8.0 
12-May-2016 08:57:28.257 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 8.0 
12-May-2016 08:57:28.258 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=C:\Program Files\Apache Software Foundation\Tomcat 8.0 
12-May-2016 08:57:28.259 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 8.0\endorsed 
12-May-2016 08:57:28.261 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=C:\Program Files\Apache Software Foundation\Tomcat 8.0\temp 
12-May-2016 08:57:28.261 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 
12-May-2016 08:57:28.262 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=C:\Program Files\Apache Software Foundation\Tomcat 8.0\conf\logging.properties 
12-May-2016 08:57:28.264 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: exit 
12-May-2016 08:57:28.265 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xms128m 
12-May-2016 08:57:28.266 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx256m 
12-May-2016 08:57:28.267 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Apache Software Foundation\Tomcat 8.0\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Java\jdk1.8.0_65\bin;. 

我不明白之源」 Java主目錄: C:\ Program Files \ Java \ jdk1.7.0_79 \ jre「。

我試圖在文件中搜索「1.7」,在Tomcat的所有文件和子文件夾的發現,唯一的occourence出現在日誌...

鏈接的目標是「C:\ Program Files文件\ Apache的Software Foundation \ Tomcat 8.0 \ bin \ Tomcat8.exe「,沒有其他變量。

此外,JDK 1.7不在系統路徑!

我該如何強制JDK 1.8?

在此先感謝。

編輯

這是一組命令的提示打印:

C:\Program Files\Apache Software Foundation\Tomcat 8.0\bin>set 
ALLUSERSPROFILE=C:\ProgramData 
APPDATA=C:\Users\Alessandro\AppData\Roaming 
CommonProgramFiles=C:\Program Files\Common Files 
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files 
CommonProgramW6432=C:\Program Files\Common Files 
COMPUTERNAME=ASUS-B551L-09 
ComSpec=C:\WINDOWS\system32\cmd.exe 
configsetroot=C:\WINDOWS\ConfigSetRoot 
DOCKER_TOOLBOX_INSTALL_PATH=C:\Program Files\Docker Toolbox 
FPS_BROWSER_APP_PROFILE_STRING=Internet Explorer 
FPS_BROWSER_USER_PROFILE_STRING=Default 
FP_NO_HOST_CHECK=NO 
HOMEDRIVE=C: 
HOMEPATH=\Users\Alessandro 
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_65 
LOCALAPPDATA=C:\Users\Alessandro\AppData\Local 
LOGONSERVER=\\ASUS-B551L-09 
NUMBER_OF_PROCESSORS=4 
OS=Windows_NT 
Path=C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\GTK2-Runtime\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Java\jdk1.8.0_65\bin;C:\Program Files\Git;C:\Program Files\7-Zip;C:\Program Files\nodejs\;C:\Program Files\Docker Toolbox;C:\Users\Alessandro\AppData\Roaming\npm 
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC 
PROCESSOR_ARCHITECTURE=AMD64 
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 69 Stepping 1, GenuineIntel 
PROCESSOR_LEVEL=6 
PROCESSOR_REVISION=4501 
ProgramData=C:\ProgramData 
ProgramFiles=C:\Program Files 
ProgramFiles(x86)=C:\Program Files (x86) 
ProgramW6432=C:\Program Files 
PROMPT=$P$G 
PSModulePath=C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\ 
PUBLIC=C:\Users\Public 
SESSIONNAME=Console 
SystemDrive=C: 
SystemRoot=C:\WINDOWS 
TEMP=C:\Users\Alessandro\AppData\Local\Temp 
TMP=C:\Users\Alessandro\AppData\Local\Temp 
USERDOMAIN=ASUS-B551L-09 
USERDOMAIN_ROAMINGPROFILE=ASUS-B551L-09 
USERNAME=Alessandro 
USERPROFILE=C:\Users\Alessandro 
VBOX_MSI_INSTALL_PATH=C:\Program Files\Oracle\VirtualBox\ 
windir=C:\WINDOWS 
+1

環境變量是從您用來啓動tomcat的進程繼承的。如果在JAVA_HOME更改之前啓動了此進程,則它可能仍具有舊值,因此tomcat將繼承舊值。註銷並重新啓動或重新啓動系統。 – Robert

+0

已經做了好幾次了,我昨天注意到了這個問題,今天早上我重啓了,但問題仍然存在。 –

+0

啓動'cmd',運行'set'並在這裏發佈。也許還有其他系統變量會影響這種行爲。只是一個猜測。 –

回答

1

感謝Jacek Cz,我找到了解決方案。

這是的Tomcat配置,在面板中可見,可以從推出:

「Windows圖標/所有的應用程序/ Apache Tomcat上8 /配置」

要去標籤的Java,有設置了JDK 1.7。 更改這個變量,Tomcat從正確的JDK開始。

Apache Tomcat 8.0 Tomcat8 Properties

+0

如果這是解決方案,你應該接受這個答案。 –

+0

我只能在2天后接受它 –

1

我猜JAVA_HOME變量是越來越被Tomcat覆蓋。

請檢查startup.bat和catalina.bat文件,以檢查是否定義了JAVA_HOME變量,我猜它會在那裏定義。

請檢查tomcat bin文件夾下的這些文件。

+0

我已經嘗試在catalina.bat中添加set JAVA_HOME =「C:\ Program Files \ Java \ jdk1.8.0_65 \ bin」,但它沒有奏效。在startup.bat沒有JAVA_HOME occourences –

+0

請檢查這個職位:http://stackoverflow.com/questions/5492937/windows-ignores-java-home-how-to-set-jdk-as-default – shankarsh15

+0

它取決於在Windows註冊表中?但我應該調查哪個關鍵? –

1

當作爲Windows服務(在典型的Windows安裝中)啓動時,Tomcat從Java選項卡獲取JVM路徑,從systray/configure中可以看到該路徑。

Tomcat的所有Java路徑都依賴於此主路徑。

我想,這樣設計的感覺是:在Java升級之後,Tomcat可以使用舊的,檢查過的JVM運行,直到admin修改爲止。

+0

mmm ...你能解釋一下我的一些細節嗎?謝謝。 –

+0

我怎樣才能看到systray/configure? –

+0

Systray是帶有圖標的區域,通常是右下角。尋找Apache/Tomcat。我不確定我是否理解你 –