首页 > 单独启动tomcat,为什么是调用jdk里面的java.exe?而不是jre里的?

单独启动tomcat,为什么是调用jdk里面的java.exe?而不是jre里的?

1,单独启动tomcat,为什么是调用jdk里面的java.exe?而不是jre里的?,
2,单独启动myeclipse调用的却是myeclipse自身自带的的jdk中的javaw.exe,为什么不调用jre中的?
3,为什么tomcat调用java.exe而myeclipse却调用javaw.exe?


因为你配置的环境变量是jdk的路径,你配置了环境变量他就不会去找jre了,如果你安装了jre,并且配了环境变量它就回去找jre的java.exe


myeclipse 使用的也是jdk 不过是 javaw.exe 这个可执行文件是用来把java编译成class文件。
tomcat是调用java.exe来执行myeclipse 调用 javaw.exe 编译出来的 class文件。


1、是因为你在环境变量里面设置了path路径,指向的是JDK中的bin目录。
2、调用java.exe会出现控制台,而MyEclipse有自己的界面不需要出现系统控制台,调用javaw.exe则不会出现控制台。
3、tomcat既可以调用java.exe也可以调用javaw.exe,点击Tomcat7.exe调用java.exe会出现控制台,点击Tomcat7w.exe调用javaw.exe有自己的界面,不会出现控制台。


  1. 这个看你的配置,如果你只配置了JRE,那他就是用JRE里的java.exe启动的。

  2. java.exe 和javaw.exe功能是一样的,只不过java命令行程序,是有标准输入输出流的,会将内容打印到控制 台。而javaw.exe是没有打印信息的。
    所以用java.exe也可以启动myeclipse,不过会在桌面上显示一个黑框命令行,而且关闭命令行就会关闭myeclipse。

  3. 这个是根据程序的需求来的,tomcat没有界面所以他需要有个地方展示启动的信息,自然就用java.exe了。而eclipse有图形化的界面自然不需要命令行显示信息。


谢邀, 这一切都是因为环境变量,所谓环境变量就是程序去哪里找默认命令。

看你的问题看出你是windows,cmd中执行echo %PATH%,

C:\Users\Administrator>echo %PATH%
C:\Python27\;C:\Python27\Scripts;C:\ProgramData\Oracle\Java\javapath;C:\Python27;C:\Program Files (x86)\Java\jdk1.7.0_17/bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;E:\oracle\product\10.2.0\client_1\bin;E:\adt-bundle-windows-x86-20130917\sdk\platform-tools;C:\Users\Administrator\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files (x86)\Microsoft Emulator Manager\1.0\;C:\Program Files (x86)\nodejs\;D:\programs\TortoiseSVN\bin;D:\programs\apache-maven-3.3.9\bin;C:\Program Files\TortoiseGit\bin;C:\Program Files\Git\cmd;C:\Users\Administrator\AppData\Roaming\Python\Scripts;C:\Program Files (x86)\SSH Communications Security\SSH Secure Shell;C:\Users\Administrator\AppData\Roaming\npm;C:\Program Files (x86)\OpenVPN\bin

如果启动tomcat的脚本中没有指定java是哪里的话,那么从这个PATH中配置的路径中寻找第一个java,比如上面我电脑的环境变量:C:ProgramDataOracleJavajavapath 这个目录下有个java的快捷方式指向了jre8的,所以即使我的环境变量中有:C:Program Files (x86)Javajdk1.7.0_17/bin, 我默认的java还是jre8的java。

但是如果tomcat中指定了java程序的绝对路径,那么就不会在环境变量中寻找java了,就是你指定的java。

以上是回答用哪个java.exe的问题,为毛myeclipse用javaw.exe,因为你直接执行java.exe会出现个黑色的命令行窗口,这个叫console窗口,标准输出的内容会输出到这个窗口,如果是javaw.exe,不会出现console窗口,一般用于运行GUI程序。

哪里写的不准确,请各位大侠指正,不要踩我,我内心很脆弱,谢谢。。。

【热门文章】
【热门文章】