一、刚装的java 1.9,安装在d:\jdk里,Path和ClassPath都没配置过,然后写了个HelloWorld.java放在D:\盘里。
二、打开cmd,路径修改到D:\jdk\bin,然后编译HelloWorld.java文件,产生class文件。
三、运行class文件,出错!
咋回事呢?小白晕了。。

解决方案 »

  1.   

    http://blog.csdn.net/HS1995125/article/details/47069311
      

  2.   

    链接中说前提是配置好环境变量了。我想问如果不配置环境变量,如何javac和java呢?
      

  3.   

    楼主要进入D盘,然后执行java {类名},javac通过了说明楼主的jdk安装没问题,只是执行语句的问题。建议楼主使用ide开发运行代码,减少了许多不必要的麻烦。
      

  4.   

    以后肯定用ide的,现在不是学习么,还是老老实实从小开始。就是不明白为什么不在jdk\bin目录下也能使用java.exe,javac就不行啊晕了。。
      

  5.   

    没有配置环境变量么?配置好环境变量,系统才可以在任意目录下识别java、javac等命令。
      

  6.   

    帅哥,你看是不是我讲的这个样子:因为没有配置classpath,所以java.exe运行时是从当前目录开始搜索的,所以我必须在D:\下用java,而不能再d:\jdk\bin路径下,即便我用了绝对路径。
      

  7.   

    除非你想所有的目录都设置为classpath,但是你新建一个文件后,又得添加,理论上是不可以的,因为你的想法显然违反了java这种编译解析型语言的编译原理,所以用javac的时候还是进到对应路径下,以后用工具了你就不会纠结这种问题了
      

  8.   

    你退回的D盘根目录,再执行java HelloWorld就可以了。
    原理我也不知道,我也是初学。
      

  9.   

    指定一下classpath就行了C:\Users\DELL>javac d://HelloWorld.java
    C:\Users\DELL>java -classpath d:// HelloWorld
    helloword
      

  10.   

    统一回复下:
       看了点资料,感觉弄懂了。
       首先,安装的时候,有两个java.exe。一个在jdk中,一个在jre中。jre是给运行的人用的,如果为了运行,需要配置环境变量,太麻烦了,所以oracle就自动配置了jre中java.exe的环境变量。证明:当安装后,不配置任何环境变量,就可以在cmd中使用java.exe了;或者直接删除jdk中的java.exe,也是可以正常使用的。也就是说,我们平时用的java.exe,都是jre中的。
      第二,如果不配置环境变量。那么使用javac.exe,毫无疑问只能进入d:\jdk\bin目录。而java.exe就可以在任何目录下使用。
      第三,编译完成后,生成了class文件,假设文件在d:\Test路径下。此时有三种办法运行它:
                1、直接在该文件路径下运行,d:\>Test java HelloWorld
                2、在其他路径下,指定文件路径运行,比如在c:\>  java -classpath d:\Test\HelloWorld
                3、在其他路径下,设置临时环境变量运行,比如在c:\>下  set classpath = d:\Test  
                                                                                                                       java HelloWorld
    这三种方法都是可以运行的。有不对情况请指正 
      

  11.   

    cmd不是说得很清楚了吗?找不到主类,因为你的PATH路径没有添加当前文件夹,修改PATH,加上"."