如何从父目录执行Java程序
我有一个像这样的目录结构:
./
+-- 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。
有什么提示吗?
非常感谢 ;)
I have a directory structure like this:
./
+-- myClass
| +-- MainClass.class
|
+-- dummy
+-- DummyClass.class
MainClass contains the public static void main(String args[])
and imports dummy.DummyClass.
I compile with a simple command like javac myClass/MainClass.java dummy/DummyClass.java
and all is fine. But when I try to execute it from ./ using java myClass.MainClass
I get the "cannot find main class" error.
If I change the classpath with the -cp option then MainClass can't find DummyClass anymore.
Any hints?
Thank you very much ;)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
MainClass
顶部是否有:package myClass;
?这对于将类视为包
myClass
的一部分是必要的,只有这样它才能被正确地寻址为myClass.MainClass
- 目录结构必须镜像 pacakge 结构。Does
MainClass
have this at the top:package myClass;
?This is necessary for the class to considered part of the package
myClass
and only then it can be correctly addressed asmyClass.MainClass
- the directory structure has to mirror the pacakge structure.这应该适合你:
MainClass:
package myClass;
导入虚拟。虚拟;
公共类主类{
java
public static void main(String[] args){
}
Dummy:
包 dummy;
public class Dummy{
}
在根文件夹中的命令行:
javac myClass/MainClass.java dummy/Dummy.java
并且,这将执行并调用 MainClass 中的“main”:
javac myClass/MainClass.java 虚拟/Dummy.java
This should work for you:
MainClass:
package myClass;
import dummy.Dummy;
public class MainClass{
java
public static void main(String[] args){
}
Dummy:
package dummy;
public class Dummy{
}
At the commandline in the root folder:
javac myClass/MainClass.java dummy/Dummy.java
And, this will execute and invoke the "main" in the MainClass:
javac myClass/MainClass.java dummy/Dummy.java