日期:2014-05-20  浏览次数:20621 次

紧急求助:被win8的JDK配置逼到走投无路了
深陷此坑足足5天了,毫无办法
环境变量
JAVA_HOME C:\Program Files\Java\jdk1.7.0_45
PATH  ;%JAVA_HOME%\bin;
CLASSPATH  .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar

-----------------------------------------------------------------------

java、javac、java -version均没问题
但当我将测试类Demo.java放在在C:\Program Files\Java\jdk1.7.0_45\bin下,使用javac Demo.java的时候却提示找不到文件


-----------------------------------------------------------------------

但如果我把他放到F盘的根目录下,编译成功

使用java命令,还可以执行


-----------------------------------------------------------------------

我把编译成功的Demo.class放到bin下,使用java命令,执行失败

但如果我给classpath后面加上;%JAVA_HOME%\bin

java命令居然执行成功了,但javac 还是会出问题


系统是win8的64位,JDK也是64位的,环境变量是系统环境变量,cmd关了上百次了,JDK也重装过10来次。。偶实在是没办法了紧急求救!!
java?;环境搭配;求助; java??? win8 环境搭配 求助

------解决方案--------------------
要找.java文件,或者用绝对路径,用cd命令先进入它所在的文件夹,再执行javac
------解决方案--------------------
你最好搞明白你执行java javac等命令查找路径的原理。
http://blog.csdn.net/pengpenglin/article/details/1682858

------解决方案--------------------
引用:
Quote: 引用:

要找.java文件,或者用绝对路径,用cd命令先进入它所在的文件夹,再执行javac

classpath那个我明白,但同样的设置 【.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar】,同样是把Demo.class放到bin下。
在另一台机器用java Demo可执行,javac Demo.java也是没问题的
而win8系统的这个却不能,还要加上%JAVA_HOME%\bin才可以,并且javac Demo.java失败。
而我想把Demo.java放到bin目录下,cmd后直接使用javac Demo.java 和java Demo,结果目前一直失败,想知道原因和解决方法?

bin在path中,所以javac可以被找到,但是cmd是不会到bin中找Demo.java的,除非先用cd命令进入bin
------解决方案--------------------
你的问题主要在classpath的配置中,你的classpath是这样的:CLASSPATH  .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar
javac Demo.java这条命令执行时,jvm会在classpath中查找Demo.java这个文件,现在你执行时是在C;\User\xin下,而你的Demo.java文件放在了C:\Program Files\Java\jdk1.7.0_45\bin中,并且你的classpath并没有这条路径,所以,你的编译肯定不成功。
你在classpath中加入C:\Program Files\Java\jdk1.7.0_45\bin,再把Demo.java放在C:\Program Files\Java\jdk1.7.0_45\bin下,这时候再编译就没问题了
------解决方案--------------------
我晕,让如花哥哥教教你~

1、classpath中配置的路径是用来找“.class”文件,而不是用来找“.java”文件。
   “.java”文件需要在当前路径下编译,或者编译的时候指明文件的相对或绝对路径。

2、path中配置的路径是用来执行“.exe”文件,即执行类似的javac、java命令。


就这么简单,好好理解一下。