如何使用javac正确编译java文件?

时间:2017-05-23 21:39:47

标签: java ubuntu-14.04 javac

所以我试图在没有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)

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

更新: 删除所有包声明后修复 我如何将其标记为已解决 特别感谢汤姆的无用评论

1 个答案:

答案 0 :(得分:0)

汇编是正确的。

但是,您的主要课程位于

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

package com.mkyong.rmiserver;

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

虽然有类型:

$ java com.mkyong.rmiclient.ServerOperation