JAR 包含不起作用

JAR inclusion not working

我正在学习如何创建一个 RMI 系统,我将共享 类 编译成一个 .jar,但是当我尝试包含它时,出现以下错误:

javac -cp compute.jar Client.java

Client.java:6: error: package rmi.interfaces does not exist
import rmi.interfaces.Tasks;
                     ^
Client.java:17: error: cannot find symbol
                        Tasks stub = (Tasks) registry.lookup("Tasks");
                        ^
  symbol:   class Tasks
  location: class Client
Client.java:17: error: cannot find symbol
                        Tasks stub = (Tasks) registry.lookup("Tasks");
                                      ^
  symbol:   class Tasks
  location: class Client
3 errors

它需要的 类 在罐子里,但由于某种原因找不到它们。我该如何解决这个问题?

消息说 rmi.interfaces 包不在您的类路径中。在您的示例中,这意味着不在 compute.jar 中。您可以通过键入 zipinfo -1 compute.jar 来验证这一点,以查看 JAR 中有哪些条目。

您真的应该为您的项目设置一个构建工具。除非您正在学习什么是 javac,否则您真的不应该手动编译 Java。如果您想尝试 Maven,您可以克隆 rm5248/Java-RMI-Example 以查看如何设置具有独立客户端和服务器模块的 RMI 项目。