所以我试图在没有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)
我认为我没有正确编译文件,但我不知道该怎么做。 我应该用什么命令编译?
更新: 删除所有包声明后修复 我如何将其标记为已解决 特别感谢汤姆的无用评论
答案 0 :(得分:0)
汇编是正确的。
但是,您的主要课程位于包。
这是因为ServerOperation.java
的第一行:
package com.mkyong.rmiserver;
为了运行程序,您必须在运行main类时包含该包。这意味着你必须导航到package /目录的根目录(在这种情况下,就在com
文件夹之前)。
虽然有类型:
$ java com.mkyong.rmiclient.ServerOperation