我在 MyClass.java 文件中有一个名为 MyClass 的类(代码如下)
package myclass;
class MyClass {
public int add (int a, int b){
return a+b;
}
public static void main(String args[]) {
MyClass obj = new MyClass();
System.out.println(oobj.add(2, 3));
}
}
我正在用
编写课程javac MyClass.java
但我正在尝试使用
来运行课程java MyClass
或
java myclass.MyClass
我收到错误
Error: Could not find or load main class MyClass
但是,如果我省略包名称,我就可以运行这个程序。 我哪里出错了?
确保您位于包文件夹的父目录(编译后的类文件所在的文件夹)中,然后执行以下命令:
java myclass.MyClass
以下是文件结构示例:
bin
-> myclass
-> MyClass.class
在上面的示例结构中,您必须从“bin”目录执行命令。
另外,将类定义为
public
并重新编译java源文件。
我也遇到过这个。对于来自其他语言的人来说这是非常令人沮丧的。 这里的关键是,java 文件必须位于正确的目录中,具体取决于包声明。
如果java文件Test1.java以
开头package com.xyz.tests;
然后java文件Test1.java需要位于目录
com/xyz/tests
您可以编译并运行为
javac com/xyz/tests/Test1.java
java com/xyz/tests/Test1
祝你好运。
您需要使用以下方式编译该类:
javac -d ./myclass
我得到了我的例子来运行
java <package>.<class>
来自包的父目录
为了能够使用包正确编译 java 代码,您应该位于包结构的 parent 目录中,然后您可以从那里执行命令:
java <package>.<YourClassFile>