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

Java在eclipse中运行并将编译,但不会在cmd上执行,但仍在eclipse中运行。如何让它在cmd中执行?

居星阑
2023-03-14

所以我在eclipse中设置了一个基本的你好世界,我可以很容易地使用cmd编译它(我已经设置了所有必要的路径),但是当我尝试使用java命令来执行你好世界时,它总是返回相同的错误:错误:无法找到或加载主类helloWorld引起的:java.lang.NoClassDefFoundError: net/codejava/helloWorld(错误的名称:helloWorld)

以下是使用的代码

package net.codejava;

public class helloWorld {

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

}

我把cd放在正确的目录中(我想,我把cd放在src目录中,然后放在src中存储的包文件中),并使用Windows 10和java 18.0.1以及JRE build 18.0.1 10-24

代码在eclipse控制台上轻松运行时,任何帮助都将不胜感激,因为这非常令人沮丧。谢谢

共有1个答案

司徒高寒
2023-03-14

你的文件有一个net的“包”。codejava和一个名为helloWorld,意思是,这个类的全名是net。代码Java。helloWorld

java命令要求传递全名,因此必须运行javanet。代码Java。helloWorld。只是java helloWorld根本不起作用。

但这还不是全部。

然后Java需要找到包含类net.codejava.helloWorld代码的类文件。它首先将全名转换为排序路径:net/codejava/helloWorld.class,然后扫描类路径中的每个条目。您可以将目录和jar文件放在类路径上。

因此,您的系统上有一个目录;让我们称之为目录X。X包含一个名为net的目录,其中包含一个名为codejava的目录,其中包含一个名为helloWorld.class的文件。如果没有这样的X(例如,您的类文件不在名为codejava的目录中),您将不得不通过创建这些目录来修复它。

然后是X(而不是codejava目录!)需要在类路径上。通常(取决于您如何配置内容),“当前目录”默认位于类路径上。

假设您的代码位于,比如说,/home/PythonSux/workspace/learningjava/net/codejava/helloWorld。类,这意味着需要在类路径上的目录是/home/PythonSux/workspace/learningjava。毕竟,如果你从那里开始寻找net/codejava/helloWorld。类,您可以找到正确的文件。

因此,要么cd到该目录,要么运行java-cp/home/PythonSux/workspace/learningjava-net。代码Java。helloWorld

请注意,这通常不是您实际运行java应用程序的方式。您可以从IDE运行它们,或者让构建工具运行它,或者将java应用程序打包到jar文件中并运行它,等等。

 类似资料:
  • 如果我在windows的命令行上执行我的python脚本,它运行得很好,但是当我在bash上运行它时,它只是一直在等待另一行,但是如果我尝试其他命令,比如,它会显示:

  • 我有一个在eclipse和cmd提示符中运行良好的Jar。当我尝试在Unix中执行相同的程序时,它没有执行。

  • 问题内容: 我很新,很困惑。我用tkinter尝试了一个简单的脚本,它在IDLE中工作正常,但是当我尝试从CMD启动它时- tkinter窗口打开,看起来还不错,但是当您尝试单击任何按钮或文件菜单选项时,就会引发AttributeError: 我很感谢您的任何投入,或者在这里我可以找到有关IDLE和CMD之间差异的更多信息。 问题答案: 人们问起python版本是因为tk.filedialog在2

  • 问题内容: 注意:这是从Comparable和Comparator合约衍生出来的,涉及null 该代码可以在Eclipse(20090920-1017)中编译并正常运行 但是它不能在上编译javac 1.6.0_17。这是错误消息: 有人可以解释为什么差异吗?这是一个错误吗?如果是这样,谁有错误? 问题答案: 这是一个已确认的错误:错误ID 6468354。这是相关的摘录: 此问题是由以下事实引起

  • 我试图使用php的shell_exec()执行一个jar文件。pgp 文件在服务器上运行。 我研究了这个问题,并尝试了以下方法,但到目前为止没有成功: < li >我在命令中指定了完整的java路径 < li >我确保服务器上没有禁用shell_exec()/exec()函数,服务器没有在安全模式下运行 < li >我将jar文件的权限更改为可执行 < li >我还尝试使用exec() < li

  • 我的两门课是这样的: 和 我无法使用编译这两个文件,错误是: a、 java:4:找不到symbol symbol:B类位置:p.a类 B类B=新B(“哈哈”) ^ a.java:4:找不到符号 符号:B类 位置:p.a类 B类=新B(“哈哈”) ^ 2个错误 移除