当前位置: 首页 > 面试题库 >

无法运行简单的已编译Java程序?

曹季同
2023-03-14
问题内容

我在Arch Linux上,我刚刚安装了JRE和JDK,所有正确的bin文件(javac和java)都在/ opt / java / bin /中

我只是编译了一个标准的hello世界,并在运行javac的情况下对其进行了编译javac ./hello.java,从而创建了一个类。

现在我的问题正在运行。我运行html" target="_blank">java ./helloworld.class,即使我指向java的文件不存在,它也会给我一个错误:

Exception in thread "main" java.lang.NoClassDefFoundError: //helloworld/class
Caused by: java.lang.ClassNotFoundException: ..helloworld.class
(..omitted for clarity..)
Could not find the main class: ./helloworld.class.  Program will exit.

您会注意到错误的第一行,它会改变路径 //helloworld/class

当我输入java的绝对路径时,即java /home/foo/helloworld.class给出了相同的错误,但是在第一行/中用替换了路径.,再次被删除。

你觉得错什么?我真的不知道为什么要这么做。


问题答案:

运行Java时,只需将其传递给标准类名(包括软件包),而不是文件名。

java helloworld 会寻找helloworld.class。

java helloworld.class 会寻找helloworld / class.class



 类似资料:
  • 我知道甚至这个问题已经被提出了几次,但没有找到解决这个问题的方法。我使用的编译命令:。我使用的运行命令: 错误:

  • 今天我决定学习并开始用rust编码,因为它是一种非常有前途的语言。然而,我试图在rust中编译和运行一个简单的Hello world程序,但由于某种原因我得到了这个错误。有人能告诉我怎么了吗? 这是我的锈迹代码: 下面是错误消息: (c)注意:抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄抄

  • 当我打f5我得到这个文本在调试窗口 javac版本展示 java版本 我试图编译的代码 路径、JAVA_HOME和JRE_HOME设置正确。调试已安装的加载项。我可以编译和运行相同的代码在InteliJ IDEA或使用java(文件),javac(文件),它会工作正常,但我不知道为什么它不工作在vscode.

  • 我一直试图使用JDBC在JAVA中创建一个简单的数据库应用程序。到目前为止,我所有的尝试都没有成功,甚至在加载驱动程序。了解我是Java新手,刚刚开始学习。以下是我的步骤: 程序总是给出这个例外: 线程“main”Java.lang.ClassNotFoundException:com.microsoft.sqlServer.jdbc.sqlServerDriver在Java.net.URLCla

  • 编译简单的 C 程序 C 语言经典的入门例子是 Hello World,下面是一示例代码: #include <stdio.h> int main(void) { printf("Hello, world!\n"); return 0; } 我们假定该代码存为文件‘hello.c’。要用 gcc 编译该文件,使用下面的命令: $ gcc -Wall hello.c -o hell

  • 问题内容: 如何编译和运行以下程序: Test1.java: Test2.java: 我是新手。如果我使用编译 并手动创建目录A,则将Test1.class复制到其中,然后手动创建目录B,并将Test2.class复制到其中,然后运行它。我确信这不是正确的方法。请提出建议。 问题答案: 您需要将Java文件保留在正确的目录结构中: 通常仅在您的主类上调用就足够了,因为所有依赖项都将自动处理。我说了