javaw.exe对于我们也比较特殊,我们也能够通过任务管理器看到javaw.exe进程的运行。javaws通常web开启的时候的进程。 javaw.exe javaw.exe是相似的和java.exe 是一个win32的GUI应用,应用提供自己的GUI窗口,不启用控制台。 因此我们想运行一个GUI程序不需要命令控制台。 如果在eclipse中直接运行:运行后 查看任务管理器出现 javaw.exe进程 –因为没有通过控制台输出运行。 如果用javaw通过命令行运行也是 注: javaw -classpath . javaw.HelloWorldSwing 启动的进程为javaw.exe java -classpath . javaw.HelloWorldSwing 启动的进程为java.exe java.exe 和 javaw.exe两种运行方式的区别还有一点 java运行GUI以后堵塞在那里直到窗口关闭。
大家好,又见面了,我是全栈君 错误如图: 原因: 在指定路径中没有找到javaw.exe或路径错误。 因为Eclipse启动时需要javaw.exe来启动。 推荐相关视频:java学习视频 解决方案: 1、我们可以通过设置path,让Eclipse通过path变量中的路径找到javaw.exe就可以了。 比如我的javaw.exe的路径为D:jdk1.8.0_25in,那只需要将环境变量中的path配置成D:jdk1.8.0_25in就可以了。 打开Eclipse安装文件下的eclipse.ini文件,找到-vm行(有的eclipse.ini文件里是没有的,如果没有则直接添加),将-vm的下一行修改为javaw.exe所在路径即可,若路径配置错误重新进行修改即可如图
No Java virtualmachine was found after searching the following locations: D:\eclipse\jre\bin\javaw.exe javaw.exe in your current PATH 解决办法: 打开Eclipse根目录eclipse.ini文件,在最前面加上两行: -vm C:\Program Files\Java \jdk1.8.0_171\bin\javaw.exe (这个是你安装的javaw.exe的绝对路径)
对于 WAS 8.0/8.5 打开 WAS_HOME\bin 目录下的 ikeyman_old.bat 文件,在第 18 行 start "iKeyMan" "%JAVA_HOME%\jre\bin\javaw classpath %CP% com.ibm.gsk.ikeyman.Ikeyman 加上 -Duser.language=en start "iKeyMan" "%JAVA_HOME%\jre\bin\javaw 对于 WAS 6.1/7.0 打开 WAS_HOME\bin 目录下的 ikeyman_old.bat 文件,在第 18 行 start "iKeyMan" "%JAVA_HOME%\jre\bin\javaw 3、对于 WAS 5.1/6.0 打开 WAS_HOME\bin 目录下的 ikeyman_old.bat 文件,在第 11 行 start "iKeyMan" "%JAVA_HOME%\bin\javaw classpath %CP% com.ibm.gsk.ikeyman.Ikeyman 加上 -Duser.language=en start "iKeyMan" "%JAVA_HOME%\bin\javaw
找到Eclipse目录下的eclipse.exe,右键点击-》发送到桌面快捷方式,然后右键点击快捷方式,选择属性,修改“目标”(或target),其中红色代表eclipse的路径,绿色代表jdk下的javaw.exe 的路径,蓝色代表工作路径: E:\SoftWare\Myclipse\eclipse\eclipse.exe -vm "C:\Program Files\Java\jdk1.6.0_24\bin\javaw.exe 在C:/WINDOWS/system32 系统文件夹中ctrl+F 然后搜索java.exe,如果存在java.exe, javaw.exe etc.全部删除。 3.
%~dps0\find_java.exe -s') do set java_exe=%%a for /f %%a in ('%~dps0\find_java.exe -s -w') do set javaw_exe in ('%~dps0\find_java.exe') do set java_exe=%%a for /f %%a in ('%~dps0\find_java.exe -w') do set javaw_exe =%%a (5) 按照下面方法照样失败,还是打不开,我表示没有 在 C:\Windows\system32\ 找到 java.exe、javaw.exe、javaws.exe SDK Manager.exe 估计是由于某些需要 java 的软件在安装时,将 java.exe、javaw.exe、javaws.exe 复制到了 c:\windows\system32 下,导致 SDK Manager.exe 删掉 C:\Windows\system32\ 下的 java.exe、javaw.exe、javaws.exe 即可解决。
start.bat=============== @echo off start javaw -jar xxx.jar exit 这里的javaw加w表示后台启动。 netstat -ano | findstr “8900” 查看PID对应的服务名称 tasklist | findstr “PID号” kill这个服务 taskkill /f /t /im javaw.exe
man函数, 我们坚定这一点, 然后再去看代码 JVM的main函数 我们可以通过全局搜索可以定位到main函数的位置,如下图所示: 点进去文件可以看到jvm对不同的处理器32位/64位和不同的启动类型javaw JAVAW 的启动头是 int WINAPI WinMain(HINSTANCE inst, HINSTANCE previnst, LPSTR cmdline, int cmdshow) { int margc; char** margv; int jargc; char** jargv; const jboolean const_javaw = JNI_TRUE *argv) { int margc; char** margv; int jargc; char** jargv; const jboolean const_javaw const_launcher : *margv, jargc > 0, const_cpwildcard, const_javaw, 0) 该方法的实现是在
bin/java -jar xxx.jar &来后台执行jar 如果是Windows环境,要如何在后台执行呢 新建一个bat文件,输入: 普通的启动: java - jar test.jar 后台启动:javaw 引入外部日志配置文件启动 引入外部日志配置文件启动: java(javaw) -jar -Dlogging.config=xxx/logback.xml test.jar springboot打包为瘦jar 时启动 springboot打包为瘦jar时启动:我是链接 java(javaw) -Dloader.path="lib/" -jar XXXX.jar application.properties
; while(in.hasNextLine()){ String p=in.nextLine(); //打印所有进程 System.out.println(p); if(p.contains(“javaw.exe = ‘ ‘){ buf.append(ch); } } //打印 javaw.exe的pid System.out.println(buf.toString().split(“Console”)[0 ].substring(“javaw.exe”.length())); } } //杀死进程,1,纯dos下,开cmd窗口 ntsd -c q -p PID // Runtime.getRuntime
*argv) { int margc; char** margv; int jargc; char** jargv; const jboolean const_javaw const_launcher : *margv, jargc > 0, const_cpwildcard, const_javaw JAVA_ARGS */ jboolean cpwildcard, /* classpath wildcard*/ jboolean javaw , /* windows-only javaw */ jint ergo /*
HotSpot通常会通过java.exe或javaw.exe来调用/jdk/src/share/bin/main.c文件中的main()函数来启动虚拟机,使用Eclipse进行调试时,也会调用到这个入口 1、main()函数 首先就是main()方法,方法的实现如下: 源代码位置:/openjdk/jdk/src/share/bin/main.c #ifdef JAVAW char **__initenv = JNI_TRUE; __initenv = _environ; #else /* JAVAW */ int main(int argc, char **argv){ int margc ; char** margv; const jboolean const_javaw = JNI_FALSE; #endif /* JAVAW */ #ifdef _WIN32 JNI_TRUE : JNI_FALSE, const_cpwildcard, const_javaw, const_ergo_class); } 第一个参数,int
那我们就一起看看这个入口代码,如下: #ifdef JAVAW 省略的windows平台相关的代码 #else /* JAVAW */ int main(int argc, char **argv) { int margc; char** margv; const jboolean const_javaw = JNI_FALSE; #endif /* JAVAW */ #ifdef JNI_TRUE : JNI_FALSE, const_cpwildcard, const_javaw, const_ergo_class); } 然后继续看函数 JAVA_ARGS */ jboolean cpwildcard, /* classpath wildcard*/ jboolean javaw , /* windows-only javaw */ jint ergo /*
将JDK 的bin目录文件找一找有没有javaw.exe,有的话查看下面命令变化 原来代码:java -jar Hello.jar 修改为:javaw.exe -jar Hello.jar 命令行窗口不要关闭
JDK路径到eclipse.ini文件中add path to your SDK in eclipse.ini open ‘eclipse.ini’ and add there: -vm path_to_javaw_on_your_machine ,so in my example it will be (jdk1.6.0_17 on Windows):-vm D://Java/jdk1.6.0_13/jre/bin/javaw 不能有空格,否则要用 v20090519 -showsplash org.eclipse.platform --launcher.XXMaxPermSize 256m -vm D:/Java/jdk1.6.0_13/jre/bin/javaw
在看看找不到jdk启动报错的另外一个截图: 同样的找到eclipse.ini文件,改其中的配置E:/Program Files/Java/jdk1.6.0_05/bin/javaw.exe为你自己安装 如我的jdk安装在C盘中,即改为:C:/Program Files/Java/jdk1.6.0_05/bin/javaw.exe,再次启动成功了。
中就如下在第一行用-vm指定使用jdk1.8.0_111版本(我的系统中安装了1.6,1.7,1.8三个jdk版本) -vm C:/Program Files/Java/jdk1.8.0_111/bin/javaw.exe 解决问题的办法也很简单,将上面的-vm参数中/javaw.exe删除 -vm C:/Program Files/Java/jdk1.8.0_111/bin 为什么不加javaw.exe eclipse也可以运行
appName=C:/MyProgram/java-service/web-core.jar set appProfile=dev echo "Start %appName% ..." start javaw %appName% --spring.profiles.active=%appProfile% endlocal Pause exit 注意: (1)set 变量的设置根据自己情况进行调整; (2)javaw
---------------------------- 后台运行jar文件: 这种方式运行完就会自动关闭窗口后台运行,可以用jps命令查看程序的pid #===== @echo off start javaw ;%JAVA_HOME%\lib\dt.jar;%JAVA_HOMe%\lib\tools.jar; set Path=%JAVA_HOME%\bin; start javaw -jar %cd%\xxxx.jar
问题原因:jdk1.6安装完成时,会将java.exe、javaw.exe、javaws.exe放入环境变量Path的对应的某个目录中(win10是在C:\Windows\system32下)。 解决方法 方法1:C盘搜索java.exe,找到对应目录,删除java.exe、javaw.exe、javaws.exe即可(推荐) ?