当前位置: 首页 > 知识库问答 >
问题:

Java编译错误:

太叔何平
2023-03-14

我正在与ATM案例研究一起工作,从Deitel java如何编程第9版。

案例研究在第13章,第546页(万一有人有这本书并想要查看),我确信我的代码是100%如书中所建议的那样。

我已经设置了所有的代码,但当我尝试运行程序时,它给了我以下信息:

Error: Could not find or load main class come.example.atm.AtmRun

当我试图从类路径使用terminal编译类时,它给出了以下错误:

localhost:atm user$ javac AtmRun.java
AtmRun.java:5: error: cannot find symbol
        Atm theATM = new Atm();
        ^
  symbol:   class Atm
  location: class AtmRun
AtmRun.java:5: error: cannot find symbol
        Atm theATM = new Atm();
                         ^
  symbol:   class Atm
  location: class AtmRun
2 errors

这是正在进行的课程:直截了当地往前走,但我似乎找不到问题所在。有人帮忙吗?

package come.example.atm;
public class AtmRun {

    public static void main (String[] args){
        Atm theATM = new Atm();
        theATM.run();
    }
}
Exception in thread "main" java.lang.NoClassDefFoundError: AtmRun (wrong name: come/example/atm/AtmRun)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

共有1个答案

印晋
2023-03-14

对我来说很管用。请遵循以下步骤:

Y:\HashmiAb\Desktop\Trash\test>javac come\example\atm\Atm.java

Y:\HashmiAb\Desktop\Trash\test>javac come\example\atm\AtmRun.java

Y:\HashmiAb\Desktop\Trash\test>java come.example.atm.AtmRun
Heloo

如何使用javac和java命令的-d和-cp选项很重要。我没有使用任何这个选项。

有关更多帮助,请查找目录结构。

+test
-+come
 -+example
  -+atm
   -AtmRun.java
   -Atm.java
 类似资料:
  • 问题内容: 我在Mavericks上运行Eclipse并安装了1.7 JDK时遇到编译问题: 类文件的版本错误为51.0,应为49.0 因此,由于这看起来像javac版本控制问题,因此我删除了所有Java版本。安装了1.7_51,安装了Apple提供的1.6版本,以便运行Eclipse,更改了符号链接,因此默认值为1.7。与以前相同的问题,同一项目无法编译,尽管其他项目可以编译, 下一步,将问题分

  • 当我使用maven编译spark java程序时,我得到了一个编译错误,如下所示

  • $/library/java/javavirtualmachines/jdk1.7.0_51.jdk/contents/home/bin/javac test.java-verbose-extdirs。-被认可的dirs。-CP。-bootclasspath/library/java/javavirtualmachines/jdk1.7.0_51.jdk/contents/home/jre/lib

  • 问题内容: 以下代码块在1.8.11中可以正常编译,但在1.8.20中会引发错误 我得到的错误是java:找不到适合过滤器的方法(com.google.common.base.Predicate) 在更新8和20之间是否存在会影响此代码的更改?我在两种情况下都使用相同版本的guava 17.0(最新版本),唯一的变化是Java中的更新版本。 任何帮助是极大的赞赏。 编辑 显示错误的行是 问题答案:

  • 生成失败,错误如下: [ERROR]未能执行目标org.apache.maven.plugins:maven-compiler-plugin:3.1:编译(默认编译)上的项目r esPonderhub:编译失败[ERROR] /X:/工作区/响应器HubWorkspace/响应器Hub/src/main/java/uk/org/响应器Hub/MemberServlet.java:[23,110]找

  • 我试图在这里运行一些来自ArcGIS github的示例代码。 当我在IntelliJ Community 2019中导入并尝试运行该项目时,我得到一个错误: 原因:org/openjfx/gradle/javafxplugin已由更新版的Java运行时(类文件版本55.0)编译,此版本的Java运行时仅识别52.0以下的类文件版本 同样的问题--但没有答案。 如何修复此错误?