проблема с rmi

Модератор: Absurd

Ответить
michael
Сообщения: 116
Зарегистрирован: 15 июл 2004, 13:06
Откуда: ISRAEL (ранее - из Литвы)
Контактная информация:

начал изучать rmi. Создал проект в нём package Server и там файл
LoginControlImpl. Работаю на эклипсе. Когда делаю save в эклипсе создаётся файл class. Но при запуске

c:\Documents and Settings\mike\workspace\Poker\Server>rmic LoginControlImpl

получаю

c:\Documents and Settings\mike\workspace\Poker\Server>rmic LoginControlImpl
error: File .\LoginControlImpl.class does not contain type LoginControlImpl as e
xpected, but type Server.LoginControlImpl. Please remove the file, or make sure
it appears in the correct subdirectory of the class path.
error: Class LoginControlImpl not found.
2 errors

при чём при попытке прописать

c:\Documents and Settings\mike\workspace\Poker\Server>javac LoginControlImpl

получаю

javac: invalid flag: LoginControlImpl
Usage: javac <options> <source files>

в чём дело то, ведь эклипс его
да скомпилировал?
Аватара пользователя
Oscar
Сообщения: 963
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

michael, немного сложно понять саму проблему,
но судя по ответам Java, можно сказать следующее.

Poker - это проэкт, я правильно понимаю?

для того, чтобы "добраться" до класса, который находится в пакете, нужно написать: пакет.класс

Пример:

Код: Выделить всё

package test;
public class Test {
	public static void main(String[] argv) {
		System.out.println("Hello world");
	}
}
находясь в директории на один выше, чем test, нужно писать:

Код: Выделить всё

javac test\Test.java
java test.Test
Правда не понимаю, при чём тут rmi, rmic и eclipse

Кроме того,
michael писал(а):в чём дело то, ведь эклипс его
да скомпилировал?
Вопрос ещё в том, какая директория установлена в проэкте для компилирования,
если это bin, так нужно (в твоём случае) писать:
c:\Documents and Settings\mike\workspace\Poker\bin\>rmic Server.LoginControlImpl

(кажется, это не по правилам, называть пакеты с большой буквы..)

Что такое rmic я не знаю. Предполагаю, что "с" - может быть для компилятора,
тогда такой вопрос: зачем писать всё это где-то, если eclipse, на то он и IDE, может сам компилировать?!..
michael
Сообщения: 116
Зарегистрирован: 15 июл 2004, 13:06
Откуда: ISRAEL (ранее - из Литвы)
Контактная информация:

привожу код класса

Код: Выделить всё

package Server;
 
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import Util.Connectivity;
import Util.User;
import GUI.*;  
 
public class LoginControlImpl  extends UnicastRemoteObject implements LoginControl 
 {
	Connectivity connect; //connect object
	
	public LoginControlImpl() throws RemoteException,Exception
	{
		connect = new Connectivity("jdbc:odbc:Poker");
	}
		
	//add user
	public  synchronized boolean addUser(User user) throws RemoteException, Exception 
	{
		return connect.addUser(user);
	}

}
пробовал c:\Documents and Settings\mike\workspace\Poker\Server>javac Server.LoginControlI
mpl таже ошибка.

Проект не компилируется в bin.

В еclipse когда делаеш save автоматически происходит компиляция (и она проходит-ведь LoginControlImpl.class создался), но для того что бы создать stub и skeleton нужно делать rmic, а его еclipse не поддерживает и приходится запускать через command prompt и он то и не проходит
Аватара пользователя
Oscar
Сообщения: 963
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

michael писал(а):пробовал c:\Documents and Settings\mike\workspace\Poker\Server>javac Server.LoginControlI
mpl таже ошибка.
Неправильно пробовал.
Компилировать нужно, находясь на один уровень выше, чем первый пакет.

В твоём случае:
c:\Documents and Settings\mike\workspace\Poker>javac Server.LoginControlImpl

А ещё может заинтересует: RMI Plugin for Eclipse
Ответить