如何从父目录执行Java程序

问题描述 投票:0回答:2

我有这样的目录结构:

./
 +-- 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。

有什么提示吗?

java class classpath
2个回答
1
投票

MainClass
顶部有这个吗:
package myClass;

这对于将类视为包的一部分来说是必要的

myClass
,只有这样它才能正确地寻址为
myClass.MainClass
- 目录结构必须镜像 pacakge 结构。


0
投票

这应该适合你:

主要课程:

打包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

© www.soinside.com 2019 - 2024. All rights reserved.