Вот мой макет файла MUD-master/MUD/src/mud/MUDServer.java
Обратите внимание, что грязь содержит все мои java классы, но остальные не относятся к этому вопросу. По сути, я пытаюсь инициализировать этот MUDServer в порту. Я написал скрипт bash, который теоретически должен работать, но у меня есть некоторые проблемы. Это скрипт bash:
#!/bin/bash
echo "This is a test"
cd "MUD/src/mud"
echo "cd 'MUD/src/mud'"
#javac -cp /MUD/scr/mud/*.java
echo "javac *.java"
javac *.java
gnome-terminal -- rmiregistry 50010
gnome-terminal -- java mud.MUDServer 50010 50011
gnome-terminal -- java mud.clientMain localhost 50010 50012
gnome-terminal -- java mud.clientMain localhost 50010 50013
gnome-terminal -- java mud.clientMain localhost 50010 50014
Программа работает до строки rmiregistry 50010
и затем останавливается. Я пытаюсь вручную инициализировать сервер, но с помощью команды java mud.MUDServer 50010 50011
, но я получаю это сообщение об ошибке
Error: Could not find or load main class mud.MUDServer
Caused by: java.lang.ClassNotFoundException: mud.MUDServer
После некоторых исследований я попытался это сделать:
java -cp mud.MUDServer 50010 50011
, который получил меня эта ошибка:
Error: Could not find or load main class 50010
Caused by: java.lang.ClassNotFoundException: 50010
Это фрагмент MUDServer. java:
package mud;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.io.IOException;
import java.rmi.Naming;
import java.rmi.RMISecurityManager;
import java.rmi.server.UnicastRemoteObject;
/**
*
* This is the main class for initialisation of the MUD Server
* It deals with the start up of the server, and also
* covers any security issues that may arise from connecting
*
*/
public class MUDServer {
static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
public static void main(String[] args)
{
if(args.length < 2)
{
System.err.println("Usage:\n Java MUDServer <registryport> <serverport>");
return;
}
try
{
String host = (InetAddress.getLocalHost()).getCanonicalHostName();
int regPort = Integer.parseInt(args[0]);
int serverPort = Integer.parseInt(args[1]);
// Security
System.setProperty("java.security.policy", "mud.policy");
System.setSecurityManager(new RMISecurityManager());
// Generate remote objects
ServerImplementation mudServer = new ServerImplementation();
ServerInterface mudInter = (ServerInterface)UnicastRemoteObject.exportObject(mudServer, serverPort);
String regURL = "rmi://" + host + ":" + regPort + "/MUDServer";
System.out.println("Registering" + regURL);
Naming.rebind(regURL, mudInter);
}
catch(java.net.UnknownHostException e)
{
System.err.println(e);
}
catch(java.io.IOException e)
{
System.err.println(e);
}
}
}
Буду признателен за любую помощь, я потратил некоторое время, пытаясь решить эту проблему.