【问题标题】:Java running a program at command prompt: could not find or load main classJava 在命令提示符下运行程序:找不到或加载主类
【发布时间】:2013-06-27 14:51:12
【问题描述】:

我正在尝试学习如何在 Windows 中仅使用命令行进行编译和运行。这是从根目录开始的目录树:

D:
 ActivityOne
     - classes
         - com
           -wat
             -sampleapp
                -students
                    StudentE.class
                 StudentMasterList.class (Main)
     - src
         -com
           -wat
             -sampleapp
                -students
                    StudentE.java
                 StudentMasterList.java (Main)

问题是我现在对如何运行程序感到困惑。 我尝试了两件事,都返回了不同的错误。

第一次尝试:

java -classpath classes StudentMasterList

返回:

Error: Could not find or load main class StudentMasterList

第二次尝试:

java -classpath classes/com/wat/sampleapp StudentMasterList

返回:

Exception in thread "main" java.lang.NoClassDefFoundError: StudentMasterList (wrongname: com/wat/sam
pleapp/StudentMasterList)
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)

在接下来的尝试之后我感到困惑,关于我应该如何运行主类的任何帮助?

更新:我应该在 ActivityOne 级别运行我的所有命令。

【问题讨论】:

  • @BackSlash ActivityOne 是文件夹的名称,不,它不是 android 应用程序,它基本上只是一个微不足道的程序。我设法让它与您的解决方案一起使用!但无论如何我只能在ActivityOne 文件夹中进行操作吗? (意思是不要进入ActivityOne 中的其他文件夹,如果您可能会问的话)

标签: java class command-line main


【解决方案1】:

正确的做法是

java -classpath D:\ActivityOne\classes com.wat.sampleapp.StudentMasterList

换句话说,您将顶级目录添加到类路径中,然后使用您的 Java 类的完全限定名称。

【讨论】:

  • @JerYango:是的,我希望它会。
  • 是的,你是对的,谢谢,顺便说一句,我忘了标记它。我很抱歉先生。不过只是一个简单的问题.. 如果文件夹名称中有一些空格,例如 C:\Documents and Settings 我该如何运行它?
  • @JerYango:只需将路径括在引号中即可。见stackoverflow.com/a/3003908/367273
猜你喜欢
  • 2018-09-30
  • 2015-12-24
  • 2015-10-01
  • 2014-06-25
  • 1970-01-01
  • 1970-01-01
  • 2015-09-30
  • 2012-08-11
  • 2018-04-08
相关资源
最近更新 更多