【问题标题】:Error class not Found fixed but I don't understand why错误类未找到已修复,但我不明白为什么
【发布时间】:2017-08-29 14:01:32
【问题描述】:

文件“HelloDemo.java”路径为“/test/hello/HelloDemo.java”

package test.hello;

public class HelloDemo {
  public static void main(String[] args) {
      System.out.print("Hello!!");
  }
}

当我“运行”它时,发生了错误。

Building HelloDemo.java and running HelloDemo
Error: Could not find or load main class HelloDemo

然后,我更改了代码。

//package test.hello;

public class HelloDemo {
  public static void main(String[] args) {
      System.out.print("Hello!!");
  }
}

当我“运行”它时,代码成功输出。

Building HelloDemo.java and running HelloDemo
Hello!!

这是关于“奔跑”的screenshot。 我修复了一个错误,但我不知道为什么,我需要帮助,谢谢!

如果我想保留包的注释,如何解决?

【问题讨论】:

  • 您的第一个“未修复”版本的运行与第二个一样好。是不是你添加main方法后忘记保存了?
  • 我已经在它运行之前保存了它。我的 IDE 是 ide.cloud9.io

标签: java cloud9-ide cloud9


【解决方案1】:

那是因为您可能在运行一次文件后更改了文件的位置。因此,运行配置应该更改为在构建的 jar 中寻找新的 test.hello.HelloDemo 类,而不是 HelloDemo(最初可能在默认包中)。你的 IDE 是什么?

备注:这不是因为您更改了文件的位置而导致类路径更改,反之亦然。

在 IntelliJ 上,您应该这样做:https://www.jetbrains.com/help/idea/creating-and-editing-run-debug-configurations.html

【讨论】:

  • 我的 IDE 是 ide.cloud9.io
  • 查看此链接:docs.c9.io/docs/running-and-debugging-code 并修改运行配置以设置正确的类。如果你把“package X.Y”放在文件中,那么你的类路径就是 X.Y.ClassName
  • 如果这回答了您的问题,请将问题标记为已回答。
  • 如果我想保留包的注释,如何解决?
  • 如果要保留包X.Y;声明,您需要两件事:1 - 创建包层次结构 (X/Y/MyClass) 和 2 - 更新 IDE 上的运行配置以启动给定的 X.Y.MyClass。
【解决方案2】:

使用您的 IDE 创建一个包并将您的类添加到其中。包名称将自动附加到顶部。 无视IDE,文件夹结构要匹配包结构,你的问题可能就在这里。

【讨论】:

  • cloud9 IDE中包名会自动追加到顶部吗?为什么我看不到?
  • 您必须手动将文件夹层次结构与包层次结构匹配。
【解决方案3】:

类名实际上是包加上类名。您不能在第一种情况下运行 HelloDemo,因为那不是类名。类名是test.hello.HelloDemo

通过注释掉包,您实际上已将类重命名为HelloDemo,因此它可以运行。

此外,使用 main 运行类时,您必须在正确的位置。例如,如果类是test.hello.HelloDemo,您的文件夹结构将是/test/hello/HelloDemo.java

您必须在/ 并从那里运行test.hello.HelloDemo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-11
    • 1970-01-01
    • 2010-11-08
    • 2018-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多