刚开始学习java,看的是编程思想第四版,看到包访问的地方出现的问题。
环境变量设置为:
CLASSPATH 设置的是 .;F:\JavaLearn (最前面有点的)
Path 设置的是 C:\ProgramData\Oracle\Java\javapath;D:\Java\jdk1.8.0_65\bin
在同一个目录里的两个文件:
//: access/mypackage/MyClass.java
package access.mypackage;
public class MyClass {
public static void main(String[] args) {
new OkClass();
}
}
//: access/mypackage/OkClass.java
package access.mypackage;
public class OkClass {
OkClass(){ System.out.println("Ok!Class!"); }
}
运行后的结果是:
F:\JavaLearn\access\mypackage>dir
驱动器 F 中的卷没有标签。
卷的序列号是 0006-2AF1
F:\JavaLearn\access\mypackage 的目录
2015/11/04 02:20 <DIR> .
2015/11/04 02:20 <DIR> ..
2015/11/04 02:21 154 MyClass.java
2015/11/04 02:21 137 OkClass.java
2 个文件 291 字节
2 个目录 61,560,258,560 可用字节
F:\JavaLearn\access\mypackage>javac MyClass.java
F:\JavaLearn\access\mypackage>java MyClass
错误: 找不到或无法加载主类 MyClass
F:\JavaLearn\access\mypackage>java access.mypackage.MyClass
Ok!Class!
F:\JavaLearn\access\mypackage>dir
运行“java MyClass”的时候看起来像是因为没在当前目录找到类文件,可是我的CLASSPATH变量设置了“点”了啊!
请大家帮帮忙,多谢了~
------解决思路----------------------
java命令要求要用fully-qualified class name(带上包名)
------解决思路----------------------
这个问题我也遇到过了。你如果java文件第一行都没有 package access.mypackage 在dos下运行就没有错,如果有那一句也是没问题的,你在eclipse下运行完全没有问题。这个和环境变量设置是没有关系的,环境变量只是搭建一个java环境
------解决思路----------------------
不好意思,误导人了,用IDE时间长了,不会用命令行方式了
------解决思路----------------------
java命令要求要用fully-qualified class name(带上包名)
多谢解答。
是不是意思就是说:运行带有package语句的类,就得用带包名的全名来运行啊?
对