在cmd中可以运行javac 但不能运行Java

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在cmd中可以运行javac 但不能运行Java相关的知识,希望对你有一定的参考价值。

求大神指导 我电脑小白一个呀 求大神

按我说的做,固定步骤:
安装JDK
2.将JDK的安装目录,直接到bin目录复制到PATH环境变量中,放在最前端,并且以英文输入法的状态分号结束,比如;不应该是;

这里说明几个困惑你的问题,第一PATH环境变量是系统变量,不需要你创建,系统有的,把你的路径加进去就OK,之所以加到jdk\bin;目录下,是因为这样可以再任何位置使用java和javac这个命令,至于classpath不用新建,根本不需要这个环境变量,可以不用JAVA_HOME,这个名字随意的,只是统称规则这么起,用这个就是方便你以后移动JDK位置不用更改PATH里的值,而是直接更改JAVA_HOME而已。最后说的是只要安装JDK,不配置任何环境变量都可以在命令行,也就是cmd中运行java,原因是安装JDK时,会往C:\windows\system32下复制一个java.exe的文件,所以cmd下可以运行,必须保证javac在命令行中任意位置可以运行,才算对!
参考技术A 原因:安装java时把jdk的路径和jre的路径选择成一样,就造成覆盖了。这时候你在lib下也找不到tools.jar和dt.jar.
解决:1.首先卸载java,卸载很容易,直接把这两个有关java的程序给卸载了就行了(用windows自带的卸载)。卸载完你也会发现,原来放java的文件夹也空了。

2.重新安装
在D盘新建一个java文件夹,在java文件下新建两个文件夹,分别命名为jdk和jre.
3.双击程序进行安装,安装时有两次选择路径的机会,第一次是让你选择jdk安装路径,选择为D:\java\jdk,第二次是让你选择jre的安装路径,选择为D:\java\jre
4.安装完成后,进行环境变量的配置,计算机右击属性,-高级系统设置-环境变量-选择下边的系统变量

5.新建
变量名:Path
变量值:C:\ProgramData\Oracle\Java\javapath;%java_home%\bin;%java_home%\jre\bin
新建
变量名:JAVA_HOME
变量值:D:\java\jdk
新建
变量名:ClassPath
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
之所以把java_home设为D:\java\jdk,是因为安装过程中生成的dt.jar,tools.jar是放在了D:\java\jdk\lib目录下,它都是jdk的东西。classPath用java_home来做一个相对路径。所以java_home必须是jdk的安装目录,且后面不可以有分号,若它后面有分号,则%JAVA_HOME%\lib\dt.jar就不是一个目录了。
参考技术B 请对照下面的配置
我的电脑-属性-高级-环境变量
1、新建变量名JAVA_HOME,值:C:\Program Files\Java\jdk1.7.0_01(JDK安装目录)
2、新建变量名CLASSPATH,值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar (特别注意任何标点符号都不能漏掉)
3、修改PATH的值,在最前面加入%JAVA_HOME%\bin;
参考技术C CLASSPATH值为: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
path中添加:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

还有你确定你下载的是windows上的jdk吗追问

是呀 windows x64

追答

JAVA_HOME那个下划线前面你是不是多了一个空格= = java _home。。。。。。。。。。。。。
java_home 下划线前后没有空格。

追问

我已经改正过了 还是不行

追答

你是不是在之前有装过其他版本的jdk又删除了?
这种问题建议重新安装jdk,下载正确的版本,把以前的残留清除干净。

追问

哦 但是我删不掉

追答

Jdk卸载之后手动删除C:\windows\system32下的:
java.exe
javaw.exe
javaws.exe
三个文件。之后
1 在点击开始-->运行->输入regedit确定打开注册表。
2 找到HKEY_LOCAL_MACHINE/software/javasoft,把这个javasoft删除即可。javasoft正常情况下至少包含\Java Development Kit,Java Plug-in,Java Runtime Environment这三项,不用怕,删除Javasoft就会把这三项都删除,问题本身也是出在这里,所以需要删除javasoft项。
3、重装JDK(如果不改变文件位置都选默认,那是最好不过的啦!)重装后会发现,重新有一个HKEY_LOCAL_MACHINE/software/javasoft项,但是这些参数都是新的了,不会出现问题了。

追问

上面的

就是在卸载的时候出现的 然后我就卸载不了了 点击确认后又跳回去了

追答

不用卸载这个了,这个是升级用的,还有另一个

上面那个卸载了,下面如果卸载不了就别卸载了,按照上面的手动删除。

本回答被提问者采纳
参考技术D 1、首先下载your uninstaller软件,卸载原来的jdk(不会出现windows installer错误)
2、重新安装与配置jdk
3、删除C:\windows\system32下的:
java.exe
javaw.exe
javaws.exe文件,这样就可以了。亲测有效

以上是关于在cmd中可以运行javac 但不能运行Java的主要内容,如果未能解决你的问题,请参考以下文章

在cmd中可以运行javac 但不能运行Java

为啥使用cmd之后javac正常运行,但是在创建的java文件中找不到class??

CMD里面javac运行不了。。

java文件在eclipse中可以运行,在cmd中javac命令运行正确,java命令报错

在cmd中可以运行java,但是不能用javac

WIN10下,JAVA安装及环境变量配置(cmd可以运行java,却不能运行javac)