当前位置: 首页 > 知识库问答 >
问题:

如何在ubuntu终端中使用类路径来执行java类?

禄光霁
2023-03-14

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

java -classpath ..:"/home/fatih/NetBeansProjects/Unit17 - CreatingTextFile/src/unit17/unit17/creatingtextfile" 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)

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

共有1个答案

马阳晖
2023-03-14

错误消息指出,在已编译类中声明的包名与给定类路径设置的JVM所期望的不匹配。类路径应该指向启动包的目录,而不是实际包含.class文件的目录。考虑到您的错误消息,我认为这应该有效:

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

如果路径中有重复的unit17,我会觉得这里还有其他东西混淆了。在堆栈溢出问题上,您会得到更好的答案...

 类似资料:
  • 问题内容: 因此,我可以很好地做到这一点: 如果存在。我也可以高兴地做到这一点: 如果类文件存在于jar的适当部分中。简单的东西。但是我无法为自己的生活做这样的事情: 存在的地方和存在的地方(当然不包含MyClass)。 我会感到愚蠢吗? 问题答案: 可能:) 基本上,这只是在类路径和jar文件中包括(当前目录)。

  • 有一个相关的问题,但它详细说明了WSL的方法,在较新版本的Windows中,Linux发行版不再是beta版,而是通过MS app store提供的。 我在哪里可以找到Windows可执行文件上的Ubuntu路径?(不是WSL。)我试着用鼠标右键点击图标来查找属性,但它不在那里,似乎是某种特殊的快捷方式。

  • 首先,我不完全确定这是正确的问题。基本上,我的最终目标是生成一个可以操作一组。docx文件的程序,以便对每个文件进行小的更改。在我看来,docx4j是实现这一目标的最佳方式。但是,我从来没有使用过提供的库之外的库。我首先试图破译手册中提供的所有信息,然后告诉我需要SLF4J才能使用Docx4J。 从这一点来看,我想我做错了什么。我很确定我知道我想写的程序背后的伪逻辑,但我不确定如何写它。我还没有做

  • 问题内容: 我有很多jar文件要添加到我的类路径中,因此,每次编译Java文件时,都会得到如下命令: 我尝试使用: 然后: 但是根本没有添加jar:由于缺少jar,我得到了错误信息…谢谢 问题答案: 也许您想尝试使用Maven来构建您的应用程序?它真的很容易设置,并且消除了依赖管理的所有问题。 同样从Java 6开始,您可以在类路径中使用通配符: set CLASSPATH = my_libs \

  • 我正在尝试解决一个问题,在一棵树上应用广度优先搜索算法和深度优先搜索算法,并找出这两种算法找到的遍历和最终路径。 我实际上感到困惑的是我如何计算这两种不同的路径?它们真的不同吗? 例如,考虑下面的树, 假设,我们的起始节点是A,目标节点是H 对于这两种算法,这就是我所感觉的穿越路径和最终路径 对于BFS 遍历路径:A B C D E F G H 最终路径:A C F H 如果这就是它的工作方式,那

  • 问题内容: 我收到错误 线程“主”中的异常java.lang.NoClassDefFoundError: 当我尝试在Ubuntu上运行已编译的类时。我使用的是一个非常简单的Helloworld示例,互联网上已经存在数百万个响应,这表明我的CLASSPATH和JAVA_HOME变量设置有误。 但是,我已经将etc / environment编辑为正确的文件夹以及当前文件夹: PATH =“。:/ u