java 找不到或无法加载主类

图片说明
图片说明
图片说明
上面三幅图是我写的那两个文件A1跟B1,还有我文件的目录,还有报错情况
那个A1编译都可以通过,就是运行的时候出了问题,但是我那个文件夹里面的其他程序都可以正常运行,我上网查了一下,都说是系统变量的路径问题,我按着他们的试了一下还是只可以编译不可以运行A1,就是会报那样的错误,谁帮我看看是哪里出问题了?

再附上我的路径
classpath .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;C:\java
JAVA_HOME D:\Program Files\Java\jdk1.8.0_74
Path D:\Program Files\Java\jdk1.8.0_74\bin;

2个回答

运行时指定java文件的全路径 java xx.A1

a515962059
a515962059 回复zc87201156: 明白了,谢谢大神
4 年多之前 回复
zc87201156
奥巴羊驼 回复zc87201156: 噢,不好意思, 有一点说错了。。package申明的必须和外面的包路径一直,不然编译找不到。
4 年多之前 回复
zc87201156
奥巴羊驼 回复a515962059: 因为在jvm里面是根据全限定名去定位一个class文件的,而这个限定名就是你java文件里面的package声明的。这个与你外面在哪个文件夹下面没有关系。你可以试试 1、如果把A1.java里面的package声明的代码去掉的话,你编译之后,直接java A1就可以运行;2,你把package声明为 oo,编译之后,就得 java oo.A1才能找到;3、如果你两个不同文件夹里面都有A1.java文件,且都没有声明package的话,你可以尝试打印不同的语句,运行java A1,最后一定是运行的你后编译的那个。加上package相当于指定在jvm里面的某个class文件的坐标吧,你这么理解就好,而与外面的文件夹没有任何关系。
4 年多之前 回复
a515962059
a515962059 难道是声明了包的运行的时候前面都要加上包名吗?
4 年多之前 回复
a515962059
a515962059 太厉害了,解决了,能具体跟我说说为什么吗?
4 年多之前 回复

在DOS窗口编译运行java文件时,遇到这个问题的大概原因:
一、你的java文件指定了包名,那么在编译时在java文件名前要加上这个包名,例如:javac com.jiafei.UDPServer.java(com.jiafei为java文件所在包名)
二、系统环境变量配置出现了错误:
我的用户变量中的配置(参考):

ClassPath:.;%JAVA_HOME%\lib\dt.......
答案就在这里:java 找不到或无法加载主类
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

a515962059
a515962059 可是我加了包名根本就编译不了,会报错:找不到文件
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐