java - 无法从 Windows XP 命令行运行 Java 程序 - ClassNotFoundException

标签 java windows command-line windows-xp

我试图通过执行以下操作从 Windows XP CMD 行创建并运行 java 程序,但失败了。谁能告诉我哪里看起来不对/还有什么可以尝试?

C:\> java -version
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode)

C:\> mkdir c:\j\
C:\> cd c:\j\
C:\j\> notepad Test.java

(opens Notepad where I insert the following text and Save, then Close.)

public class Test{
  public static void main(String[] args){
    System.out.println("hi");
  }
}
<小时/>
C:\j\> javac Test.java
C:\j\> java Test
Exception in thread "main" java.lang.NoClassDefFoundError: test
Caused by: java.lang.ClassNotFoundException: test
        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: test.  Program will exit.

真正的问题是,当我尝试使用 Eclipse 调试项目时,出现错误“无法创建 Java 虚拟机”,并且我尝试先在没有 IDE 的情况下测试编译和运行程序确保我的 JDK 安装有效。

<小时/>

更新:您是正确的,我的计算机上设置了 CLASSPATH,但我仍然收到异常。执行建议的行会产生:

C:\j>java -cp . Test
Exception in thread "main" java.lang.NoClassDefFoundError: test (wrong name: Test)
        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: test.  Program will exit.

最佳答案

看起来你的机器上已经设置了 CLASSPATH 环境变量,并且该值不包含传统的“点”(.) 来表示当前目录。您可以告诉 Java 在当前目录中查找,如下所示:

java -cp 。测试

(这是 java space dash cp space dot space 测试)。

关于java - 无法从 Windows XP 命令行运行 Java 程序 - ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5334270/

相关文章:

c++ - Boost 程序选项语法

python - 如何执行程序或批处理文件?

java - Apache HttpClient 4.5 : Connection Resets

java - 它是什么意思(NetBeans,编译警告)?

c++ - 在可移植应用程序中使用 Windows DLL

windows - 启动时形状收缩

c# - JScript.NET 与 ECMA

java - 正则表达式定义正则语言

java - 保护有状态的 Web 服务

c++ - 如何使用 C++ 以编程方式更新组策略?