如何使用包编译和运行java类

sou*_*der 0 java javac package

我在文件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));
  }
}
Run Code Online (Sandbox Code Playgroud)

我正在编写课程

javac MyClass.java
Run Code Online (Sandbox Code Playgroud)

但我正在尝试使用

java MyClass
Run Code Online (Sandbox Code Playgroud)

要么

java myclass.MyClass
Run Code Online (Sandbox Code Playgroud)

我收到了错误

Error: Could not find or load main class MyClass
Run Code Online (Sandbox Code Playgroud)

但是,如果我省略了包名,我就可以运行这个程序.我哪里错了?

Sam*_*s33 6

确保您位于包文件夹(编译的类文件所在的文件夹)的父目录中,并执行以下命令:

java myclass.MyClass
Run Code Online (Sandbox Code Playgroud)

下面是一个示例文件结构:

bin
    -> myclass
        -> MyClass.class
Run Code Online (Sandbox Code Playgroud)

在上面的示例结构中,您必须从"bin"目录执行命令.

另外,将类定义为public并重新编译java源文件.