Java: не удалось найти или загрузить основной класс Ubuntu - PullRequest
0 голосов
/ 03 апреля 2020

Вот мой макет файла 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);
        }


    }

}



Буду признателен за любую помощь, я потратил некоторое время, пытаясь решить эту проблему.

...