java同一目录下两个类之间的调用,有错吗? 5
d:\project\java\classTest>typeclassA.javapackageclassTest;//如果把此行注释掉,则OKpublicclasscl...
d:\project\java\classTest>type classA.java
package classTest;//如果把此行注释掉,则OK
public class classA{
public static void main(String[] args) {
System.out.println("classA main");
}
public void sayA(){
System.out.println("sayA");
}
}
d:\project\java\classTest>type classB.java
package classTest;//如果把此行注释掉,则OK
public class classB{
public static void main(String[] args) {
System.out.println("classB main");
classA opr = new classA();
opr.sayA();
}
}d:\project\java\classTest>cd ..
d:\project\java>javac classTest/*.java
d:\project\java>cd classTest
d:\project\java\classTest>java classB
错误: 找不到或无法加载主类 classB
d:\project\java\classTest>
一段很简单的代码,同一个目录下一个类B调用另一个类A,如果没有“package classTest”语句则调用OK,如果加上则提示无法加载主类。
可能是一个比较基础的问题,请帮忙看看是什么情况?
去掉package之后的正常调用结果:
d:\project\java\classTest>java classB
classB main
sayA 展开
package classTest;//如果把此行注释掉,则OK
public class classA{
public static void main(String[] args) {
System.out.println("classA main");
}
public void sayA(){
System.out.println("sayA");
}
}
d:\project\java\classTest>type classB.java
package classTest;//如果把此行注释掉,则OK
public class classB{
public static void main(String[] args) {
System.out.println("classB main");
classA opr = new classA();
opr.sayA();
}
}d:\project\java\classTest>cd ..
d:\project\java>javac classTest/*.java
d:\project\java>cd classTest
d:\project\java\classTest>java classB
错误: 找不到或无法加载主类 classB
d:\project\java\classTest>
一段很简单的代码,同一个目录下一个类B调用另一个类A,如果没有“package classTest”语句则调用OK,如果加上则提示无法加载主类。
可能是一个比较基础的问题,请帮忙看看是什么情况?
去掉package之后的正常调用结果:
d:\project\java\classTest>java classB
classB main
sayA 展开
1个回答
展开全部
你可以试试这两种方法呢,代码里保留你的package,
如果你在classTest下面执行的java命令,用java -cp ../ classB
如果你在java文件夹下执行命令,用java -cp . classB
更多追问追答
追问
查了一下参数,-cp是目录查找的意思,也试着打包到子目录,也设置给了目录名查找,还是一样的报错。能拿我的代码到本地试一下吗?感谢!
D:\project\java>java -cp . classB
错误: 找不到或无法加载主类 classB
追答
你贴的代码无法编译
你改一下把能编译的版本发出来
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询