[英]Java - Run multiple packages program
我正在尝试为 java 客户端/服务器程序构建 MakeFile。
我有这样的路径:
客户端和服务器都使用 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.