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

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

我在 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 package javac
5个回答
9
投票

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

java myclass.MyClass

以下是文件结构示例:

bin
    -> myclass
        -> MyClass.class

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

另外,将类定义为

public
并重新编译java源文件。


4
投票

我也遇到过这个。对于来自其他语言的人来说这是非常令人沮丧的。 这里的关键是,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

祝你好运。


0
投票

您需要使用以下方式编译该类:

javac -d ./myclass  

0
投票

我得到了我的例子来运行

java <package>.<class>

来自包的父目录


0
投票

为了能够使用包正确编译 java 代码,您应该位于包结构的 parent 目录中,然后您可以从那里执行命令:


java <package>.<YourClassFile>

有关使用包编译 Java 项目的更多参考,您可以查看此链接

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