当前位置: 代码迷 >> java >> 如何编译和运行带有包的java类
  详细解决方案

如何编译和运行带有包的java类

热度:102   发布时间:2023-07-16 17:46:52.0

我在文件 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>

从包的父目录

  相关解决方案