繁体   English   中英

Java - 运行多包程序

[英]Java - Run multiple packages program

我正在尝试为 java 客户端/服务器程序构建 MakeFile。

我有这样的路径:

  • 源代码
    • 服务器
      • CServer.java
    • 客户
      • CClient.java
    • 共享
      • SharedClass.java

客户端和服务器都使用 Shared package ,如下所示:

import Shared.SharedClass;
...
  SharedClass mysharedobject = (SharedClass)UnicastRemoteObject.exportObject(anobject, 0);

我的 makefile 很简单

all: compile test

compile :
    mkdir -p bin
    javac -d bin src/**/*.java

test:
    java -classpath bin Server.CServer &
    java -classpath bin Client.CClient &

但我在运行服务器时收到 ClassNotFoundException: Shared.SharedClass。

当所有 java 文件都在同一个 package 中时,它可以工作,但我想把它分开。

有没有办法在同一个文件夹中编译所有文件或在不同文件夹中正确运行 class 文件。

编辑:我在尝试运行构建的 jar 时遇到同样的错误

这个不对:

javac -d bin src/**/*.java

make 始终运行/bin/sh ,并且/bin/sh是 POSIX shell。 POSIX 没有定义像**这样的“增强”通配符来搜索所有子目录。 如果您将此添加到您的食谱中:

ls src/**/*.java

您将看到正在编译的文件列表。 如果您需要搜索多个子目录,则必须使用find ,例如:

javac -d bin $$(find src -name \*.java)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM