0
C:\Users\student3>java -cp C:\users\student3 start
Exception in thread "main" java.lang.NoClassDefFoundError: start (wrong name: wo
rk/start)
        at java.lang.ClassLoader.defineClass1(Native Method)
        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$100(Unknown Source)
        at java.net.URLClassLoader$1.run(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)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

截图: http: //imageshack.us/photo/my-images/835/mt6a.png/ 这是我第一次通过windows运行课程,会发生什么?

更新:

线程“main”中的异常 java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Row 所以..我应该创建 100 个目录吗?

4

2 回答 2

2

看起来您已将start该类放在一个名为work. 为此,您需要:

  • 放入start.class一个名为 的目录work,然后调用java -cp C:\users\student3 work.start
  • 或者只是package work;从源文件中删除该行 - 然后该命令将按预期工作。

附带说明:按照惯例,Java 类名总是以大写字母开头。所以你真的应该重命名startStart.

于 2013-08-08T08:03:27.580 回答
1

注意说“错误名称:工作/开始”的部分。这意味着找到了类文件,但它包含一个名为“work.start”的类,但您想运行一个名为“start”的类。

你可以做两件事:

  1. 创建一个名为 work 的目录并将 start.class 文件移到那里。使用“java work.start”运行。
  2. 从 start.java 中删除包声明并重新编译。
于 2013-08-08T08:04:42.013 回答