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

java编译和运行的问题
为什么javac时需要指定具体路径,而java时不能指定具体路径。
是不是classpath或者path设置有问题?
C:\Documents and Settings\Administrator>javac Point.java
javac: 找不到文件: Point.java
用法: javac <options> <source files>
-help 用于列出可能的选项

C:\Documents and Settings\Administrator>javac d:\javalesson\2\Point.java

C:\Documents and Settings\Administrator>java d:\javalesson\2\Point
错误: 找不到或无法加载主类 d:\javalesson\2\Point

C:\Documents and Settings\Administrator>java Point
10
20

C:\Documents and Settings\Administrator>set classpath
classpath=.;d:\javalesson\2\

C:\Documents and Settings\Administrator>path
PATH=D:\Program Files\Java\jdk1.7.0_05\bin;D:\oracle\product\10.1.0\Db_1\bin;D:\
oracle\product\10.1.0\Db_1\jre\1.4.2\bin\client;D:\oracle\product\10.1.0\Db_1\jr
e\1.4.2\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;D:\Program F
iles\IDM Computer Solutions\UltraEdit\

------解决方案--------------------
这个问题真是瀑布汗。。。

javac 是指定一组文件进行编译,当然必须指定文件位置,否则总不能把全世界的java文件都编译掉吧;

java 是运行指定程序(对Java来说就是主类),那么只要能在全世界(CLASPATH)范围内找到你指定的这个程序,就应该运行它。



你在cmd命令行下面执行 java, 显然这个java程序也没在当前目录吧?为啥它能被执行?