我有这样的目录结构:
./
+-- 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。
有什么提示吗?
MainClass
顶部有这个吗:package myClass;
?
这对于将类视为包的一部分来说是必要的
myClass
,只有这样它才能正确地寻址为 myClass.MainClass
- 目录结构必须镜像 pacakge 结构。
这应该适合你:
主要课程:
打包myClass;
导入虚拟.Dummy;
公共类主类{
java 公共静态无效主(字符串[] args){
System.out.println(:"This is the main class");
Dummy dummy = new Dummy();
dummy.exec();
}
}
假人:
包装虚拟;
公开课假人{
public void exec(){
System.out.println("This is the dummy class exec invocation");
}
}
在根文件夹中的命令行:
javac myClass/MainClass.java 虚拟/Dummy.java
并且,这将执行并调用 MainClass 中的“main”: javac myClass/MainClass.java dummy/Dummy.java