java - "Could not find the main class: MineAvtaler. Program will exit."- 仅当在 Eclipse 外部运行时

标签 java eclipse windows-7 noclassdeffounderror

我已经在 Eclipse 中创建了我的应用程序。它相当简单,总共包含大约 1000 行代码。我的类 MineAvtaler 包含我的主要功能。

我通过 Eclipse 的“运行”按钮成功运行了它。但是,每当我尝试从命令行运行代码时,我都会在标题中收到错误消息。我编译如下: javac MineAvtaler.java Avtaledata.java Avtale.java

并尝试像这样运行应用程序:

  • java MineAvtaler
  • javaw MineAvtaler.java

后者在消息框中而不是在控制台中给出错误消息。

为什么我的程序不能在 Eclipse 之外运行?

我使用的是 Windows 7 并安装了 JDK。这是我得到的堆栈跟踪:

C:\Users\Codemonkey1991\Desktop\mineavtaler>java MineAvtaler Avtaledata Avtale
Exception in thread "main" java.lang.NoClassDefFoundError: MineAvtaler (wrong name: mineavtaler/MineAvtaler)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(Unknown Source)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$000(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: MineAvtaler.  Program will exit.

*这是源代码:*

最佳答案

这是一个包的问题。 MineAvtaler 位于名为 mineavtaler 的包内(字符大小写相关),如源代码第一行中所述。因此,您可能有一个由 Eclipse 为您创建的名为 mineavtaler 的目录。这不是您为项目创建的目录,而是由 Eclipse 创建的“特殊”目录,其中放置您的 MineAvtaler.java 文件。

您不必在此处打开终端。相反,在父目录中打开它并运行:javamineavtaler.MineAvtaler。这样应该可以工作。

编辑:从C:\Users\Codemonkey1991\Desktop\运行javamineavtaler.MineAvtaler

调用“java”命令时,您始终必须观察包结构。请参阅http://download.oracle.com/javase/tutorial/java/package/packages.html了解更多信息。

关于java - "Could not find the main class: MineAvtaler. Program will exit."- 仅当在 Eclipse 外部运行时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5875332/

相关文章:

java - 如何序列化复杂的 Map 对象?

java - 以编程方式添加 Servlet 或 Filter 的优点或用例是什么?

java - 使用 EclipseLink 版本 2.6.4 创建 EntityManager 时如何处理 'IllegalBlockSizeException'?

android - LayoutLib 太新了。更新你的工具?

windows - SHAddToRecentDocs 没有文件?

java - 自定义类: Custom type cannot be converted to other custom type

java - 如何从 input.txt 文件创建字符串数组

java - 在 Eclipse 中,我在哪里可以看到项目的构建进度?

windows-7 - 如何在Python中同时运行2个不同的进程

windows-7 - Windows 7 上的 Visual Studio 2012 仍然需要 .NET 4.5