如何在ubuntu终端中使用类路径来执行java类?
我尝试在终端中使用类路径执行CreateTextFileTest.class文件,如下所示:如何在ubuntu终端中使用类路径来执行java类?,java,linux,classpath,Java,Linux,Classpath,我尝试在终端中使用类路径执行CreateTextFileTest.class文件,如下所示: java -classpath ..:"/home/fatih/NetBeansProjects/Unit17 - CreatingTextFile/src/unit17/unit17/creatingtextfile" CreateTextFileTest 我的类文件在此目录中:/home/fatih/NetBeansProjects/Unit17-CreatingTextFile/src/Unit
java -classpath ..:"/home/fatih/NetBeansProjects/Unit17 - CreatingTextFile/src/unit17/unit17/creatingtextfile" CreateTextFileTest
我的类文件在此目录中:/home/fatih/NetBeansProjects/Unit17-CreatingTextFile/src/Unit17/Unit17/CreatingTextFile
目录中有3个类:AccountRecord.class
,CreateTextFile.class
,和CreateTextFileTest.class
但是,当我使用上面的代码从终端执行CreateTextFileTest时,出现了如下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: CreateTextFileTest (**wrong name**: unit17/creatingtextfile/CreateTextFileTest)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
线程“main”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.LaunchHelper.checkAndLoadMain(LaunchHelper.java:482)中
据我所知,因为
CreateTextFileTest.java
使用两个不同的类,所以执行失败。如何处理这种情况?如何运行我的java项目?在这种情况下如何使用类路径?我使用错了吗?错误消息指出,在编译的类中声明的包名与JVM根据类路径设置所期望的不匹配。类路径应该指向包启动的目录,而不是实际包含.class
文件的目录。考虑到您的错误信息,我认为这应该是可行的:
java -classpath ..:"/home/fatih/NetBeansProjects/Unit17 - CreatingTextFile/src/unit17" unit17.creatingtextfile.CreateTextFileTest
考虑到在你的道路上有重复的unit17
,我觉得这里还混有别的东西。关于……你会得到更好的答案