【问题标题】:Not able to run "java HelloWorld" error could not find main class无法运行“java HelloWorld”错误找不到主类
【发布时间】:2016-01-04 01:25:21
【问题描述】:

我使用 netbeans 生成了 HelloWorld.jar 文件并尝试在 windows 64 位命令提示符下执行,为什么?

我的代码是:

import java.applet.Applet;
import java.awt.Graphics;

public class HelloWorld extends Applet {
    public void paint(Graphics g) {
        g.drawString("Hello world!", 50, 25);
    }
}

我尝试了另一个 helloworld 代码:

public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hello, World");
    }

}

它说找不到或无法加载主类,为什么?

如何将 java 与多个 jar 文件一起使用,我在这方面遇到了问题,这是输出:

【问题讨论】:

  • 您确定您的课程实际上没有包含在您没有向我们展示的包中吗?
  • 首先回到coveragecodetool 目录。使用javac coveragecodetool/*.javajavac coveragecodetool/HelloWorld.java 编译它。使用java coveragecodetool.HelloWorld 运行它。这当然假设HelloWorld 具有适当的package coveragecodetool 声明。
  • 另外,Applets 不能像这样从命令行运行,您需要使用小程序查看器并为其提供一个定义小程序条目的 html 页面。在您尝试入门时,我会避免出于这个和许多其他原因使用小程序,它们在最好的时候很麻烦,更不用说大多数浏览器正在积极放弃对它们的支持
  • 谢谢它的工作,但如果我有多个 jar 文件我该如何运行代码?

标签: java class netbeans main


【解决方案1】:

更新您的代码,使其看起来更像

package coveragecodetool;

public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hello, World");
    }

}

在命令行中,切换到coveragecodetool 目录之上的目录。

使用javac coveragecodetool\HelloWorld.java编译程序,使用java coveragecodetool.HelloWorld运行

【讨论】:

  • 如果我有多个 jar 文件要附加到 helloworld 程序中怎么办? javac和java的jar文件如何使用?
  • 您需要使用-cp 参数直接指定类路径到java/c 命令或将它们添加到CLASSPATH 环境变量。您还可以包含在主 jar 的清单类路径属性中。您可能不应该将 jar 放在与源代码相同的目录中,但您可能也不应该将 .class 文件编译到 src 目录中。我强烈建议您找到一个现代 IDE,因为它可以帮助您解决许多此类问题,或者使用 Ant 或 Maven 等构建系统
  • E:\NetBeansProjects\Project24\CoverageCodeTool\src>java -cp ../dist/lib/* covera gecodetool/CoverageCodeTool 错误:无法找到或加载主类coveragecodetool.CoverageCodeTool E:\NetBeansProjects \Project24\CoverageCodeTool\src> 添加多个 jar 文件时出现上述错误。
  • 我在 src 文件夹中创建了一个 CoverageCodeTool.class。
  • 您为什么要通过尝试从命令行编译来使用 Netbeans?只需让 Netbeans 为您编译和打包它!另外,我没有CoverageCodeTool 的代码,所以我只能假设它没有main 方法和/或正确的package 声明`
【解决方案2】:

在您的第一个示例中,您尚未定义 main() 方法。因此它找不到并且(显然)没有运行。

第二个例子看起来更有希望,但是你可能仍然需要指定一个类路径来告诉 JVM 类在哪里。尝试按照您为第一个示例所做的操作。记下您的第二个课程所在的包。这必须包含在命令行中,例如。 java <packagename>.HelloWorld

【讨论】:

  • 第一个例子是一个小程序,不需要main 方法,但需要使用浏览器或小程序查看器通过html页面加载
  • 如果作为小程序运行,它不需要main方法不是更正确吗?如果它像 OP 那样从命令行运行,它会,不是吗?
  • 不,main 方法会运行,但小程序没有自己的“窗口”来显示它,所以这只是一个毫无意义的练习。 Applet 不需要main 方法,因为它们的管理方式与“普通”应用程序不同
猜你喜欢
  • 1970-01-01
  • 2016-08-11
  • 1970-01-01
  • 1970-01-01
  • 2016-01-06
  • 2017-07-31
  • 1970-01-01
  • 2014-07-04
  • 1970-01-01
相关资源
最近更新 更多