【问题标题】:how to correctly compile java files with javac? [duplicate]如何使用 javac 正确编译 java 文件? [复制]
【发布时间】:2017-05-23 21:39:46
【问题描述】:

所以我试图在没有 Eclipse 的情况下从终端编译一些 java 代码。 我正在关注本教程 https://www.mkyong.com/java/java-rmi-hello-world-example/ 所以我下载了3个java文件并用 javac *.java 没有错误,我得到了 3 个 .class 文件

但是当我跑的时候 java ServerOperation 我得到了

Exception in thread "main" java.lang.NoClassDefFoundError: ServerOperation (wrong name: com/mkyong/rmiserver/ServerOperation)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:803)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:442)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:64)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:354)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:348)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:347)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:312)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

我认为我没有正确编译文件,但我不知道该怎么做。 我应该使用什么命令来编译?

更新: 删除所有包声明后修复 如何将此标记为已解决 特别感谢 Tom 的无用 cmets

【问题讨论】:

  • 你为什么不阅读你链接到的教程。它告诉你如何运行它:java com.mkyong.rmiserver.ServerOperation
  • 我知道错误消息的含义,但我不知道如何解决。
  • 显然 java com.mkyong.rmiserver.ServerOperation 不起作用

标签: java ubuntu-14.04 javac


【解决方案1】:

编译正确。

但是,您的主类被放置在一个中。

这是因为ServerOperation.java的第一行:

package com.mkyong.rmiserver;

为了运行程序,您必须在运行主类时包含该包。这意味着您必须导航到包/目录的根目录(在这种情况下,就在 com 文件夹之前)。

在那里输入:

$ java com.mkyong.rmiclient.ServerOperation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-11
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-09
    • 2011-12-28
    • 1970-01-01
    相关资源
    最近更新 更多