【问题标题】:How to use classpath in ubuntu terminal for executing java class?如何在 ubuntu 终端中使用类路径来执行 java 类?
【发布时间】:2015-04-13 03:52:59
【问题描述】:

我尝试在终端中使用类路径执行 CreateTextFileTest.class 文件,如下所示:

java -classpath ..:"/home/fatih/NetBeansProjects/Unit17 - CreatingTextFile/src/unit17/unit17/creatingtextfile" CreateTextFileTest

我在这个目录中的类文件:/home/fatih/NetBeansProjects/Unit17 - CreatingTextFile/src/unit17/unit17/creatingtextfile

我的目录中有 3 个类:AccountRecord.classCreateTextFile.classCreateTextFileTest.class

但是,当我使用上面的代码从终端执行 CreateTextFileTest 时,出现了这样的错误:

线程“主”java.lang.NoClassDefFoundError 中的异常:CreateTextFileTest(**错误名称**:unit17/creatingtextfile/CreateTextFileTest) 在 java.lang.ClassLoader.defineClass1(本机方法) 在 java.lang.ClassLoader.defineClass(ClassLoader.java:800) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 在 java.net.URLClassLoader.access$100(URLClassLoader.java:71) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:361) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:355) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:425) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:358) 在 sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

据我了解,因为CreateTextFileTest.java 使用两个不同的类,所以执行失败。如何处理这种情况?如何运行我的java项目?在这种情况下如何使用类路径?是我用错了吗?

【问题讨论】:

    标签: java linux classpath


    【解决方案1】:

    错误消息指出,在您编译的类中声明的包名称与 JVM 在您的类路径设置下所期望的不匹配。类路径应该指向你的包开始的目录,而不是实际包含你的.class 文件的目录。鉴于您的错误消息,我相信这应该有效:

    java -classpath ..:"/home/fatih/NetBeansProjects/Unit17 - CreatingTextFile/src/unit17" unit17.creatingtextfile.CreateTextFileTest
    

    鉴于您的路径中有重复的unit17,我觉得这里混杂了其他东西。你会在Stack Overflow得到更好的答案...

    【讨论】:

      猜你喜欢
      • 2014-10-19
      • 1970-01-01
      • 2014-10-31
      • 1970-01-01
      • 1970-01-01
      • 2017-08-02
      • 1970-01-01
      • 1970-01-01
      • 2018-05-08
      相关资源
      最近更新 更多