我有一个像这样的目录结构:
./
+-- myClass
| +-- MainClass.class
|
+-- dummy
+-- DummyClass.class
MainClass包含public static void main(String args[])
并导入dummy.DummyClass。
我使用像javac myClass/MainClass.java dummy/DummyClass.java
之类的简单命令进行编译,一切都很好。但是当我尝试使用java myClass.MainClass
从./执行它时,我得到了“找不到主类”的错误。
如果我使用-cp选项更改类路径,那么MainClass将无法再找到DummyClass。
任何提示?
非常感谢你;)
答案 0 :(得分:1)
MainClass
顶部是否有package myClass;
?
这对于类考虑包myClass
的一部分是必要的,只有这样才能正确地解析为myClass.MainClass
- 目录结构必须镜像pacakge结构。
答案 1 :(得分:0)
这应该适合你:
MainClass:
打包myClass;
import dummy.Dummy;
公共类MainClass {
的java public static void main(String [] args){
System.out.println(:"This is the main class");
Dummy dummy = new Dummy();
dummy.exec();
}
}
虚拟:
包假人;
public class Dummy {
public void exec(){
System.out.println("This is the dummy class exec invocation");
}
}
在根文件夹中的命令行:
javac myClass / MainClass.java dummy / Dummy.java
并且,这将执行并调用MainClass中的“main”: javac myClass / MainClass.java dummy / Dummy.java