java - 类文件未被读取

标签 java ubuntu command-line

当我编译 java 文件时,它会被编译,并且我能够在同一位置看到类文件。但是当我尝试使用 java 命令运行它时,出现以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: UDPServer (wrong name: com/prasanna/udp/UDPServer)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:787)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:447)
    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:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

我应该如何纠正这个错误?我应该如何让java程序知道这个类文件的路径?

PS:我对 Java 文件的命令行执行非常陌生。

最佳答案

假设该类位于com.prasanna.udp包中,并且名为UDPServer。假设包含 .class 文件的 com/prasanna/udp 目录树位于/home/Prasanna/java/classes 中,则命令行应为:

java -cp /home/Prasanna/java/classes com.prasanna.udp.UDPServer

如果您的类依赖于位于 /foo/bar/somelib.jar 中的 jar 文件,则 iy 也应放置在类路径中:

java -cp /home/Prasanna/java/classes:/foo/bar/somelib.jar com.prasanna.udp.UDPServer

关于java - 类文件未被读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16268305/

相关文章:

java - 意外的 java SimpleDateFormat 解析异常

java - 随机骰子模拟器

linux - Image Magick 源文件夹在哪里

c - 需要有关简单 C 命令行参数的帮助

java - 如何在 JAVA 中定义 NotesXspDocument 对象

java - 如何在 Kafka 0.11 中正确提交生产者并消费事务消息?

ubuntu - awk 查找字符串完全匹配的行号

apache - 无法从本地网络上的其他机器访问 Apache 虚拟主机

batch-file - 递归搜索子文件夹并删除子文件夹中超过6个月的所有文件

phpinfo 报告不正确的 pcre 版本