gpt4 book ai didi

Java 编译多个包中的 RMI 服务器/客户端应用程序

转载 作者:太空宇宙 更新时间:2023-11-04 11:35:45 25 4
gpt4 key购买 nike

我在 Windows 10 上使用命令行界面编译包中的 Java RMI 分配时遇到了一些麻烦(无法使用 Eclipse 或任何其他 IDE)。我需要编译并运行两个 .java 文件 - RemoteBankServer.java 和 RemoteBankClient.java。这两个文件都使用其他 .java 类(Bank.java、RemoteBankImpl.java、RemoteBank.java、Account.java 和 Account.java 的子类)。以前,将所有文件放在一个文件夹中,我可以使用两个命令行窗口轻松编译和运行我的服务器和客户端:

 javac RemoteBankServer.java
java RemoteBankServer

RemoteBankClient 也是如此。现在我已经测试了我的代码工作正常,我需要将它们组织到 java 包中,遵循以下结构:

- package name: edu.btp400.w2017.client
class name: RemoteBankClient

- package name: edu.bt400.w2017.server
class names: RemoteBankImpl, RemoteBankServer

- package name: edu.btp400.w2017.common
class name: RemoteBank (and all other classes, like Bank, Account, etc.)

我已经创建了这些文件夹(edu/btp400/w2017/),并在每个文件夹中放置了适当的类,但我无法编译它。现在,我在每个 .java 文件的顶部都有这两行:

package edu.btp400.w2017.server;   //or .common or .client
import edu.btp400.w2017.*;

但是在尝试编译 RemoteBankServer.java(在服务器文件夹中)时,我仍然遇到编译错误,例如这个(这很奇怪,因为 RemoteBankImpl 与 RemoteBankServer 位于同一文件夹中:

RemoteBankServer.java:40: error: cannot find symbol
RemoteBankImpl b1 = new RemoteBankImpl();
^
symbol: class RemoteBankImpl
location: class RemoteBankServer

以及类似的错误,指出无法找到帐户和其他类。我已经看过有关如何使用命令行界面编译 Java 包的各种帖子,但我还没有让它工作。任何帮助将不胜感激。很抱歉这篇文章很长。

编辑:这是我上面用来编译的命令(将文件存储在各个包中之后):我在包含 edu 的文件夹中尝试了这个,得到了 27 个编译错误:

javac -cp . edu/btp400/w2017/server/RemoteBankServer.java

在服务器文件夹中,出现了 15 个编译错误:

javac RemoteBankServer.java

编辑:感谢用户 EJP,我发现我需要在导入语句中包含子文件夹:而不仅仅是 import edu.btp400.w2017.*; 我需要这样做:

import edu.btp400.w2017.common.*;
import edu.btp400.w2017.server.*;
import edu.btp400.w2017.client.*;

最佳答案

import edu.btp400.w2017.*;

这不会导入 * 指示的子包中的所有类。星号仅指类。

您需要单独导入所有包。

关于Java 编译多个包中的 RMI 服务器/客户端应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43309033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com