2013-09-29 5 views
0

Я понятия не имею, почему это связано с ошибкой во время выполнения, я столкнулся с проблемой, и он говорит, что класс, который был доступен во время компиляции, больше не доступен во время выполнения.java.lang.NoClassDefFoundError

Это код:

package examples.RMIShape; 
import java.rmi.*; 
import java.rmi.registry.LocateRegistry; 
import java.rmi.registry.Registry; 
//import java.rmi.server.UnicastRemoteObject; 

public class ShapeListServer { 
    public static void main(String args[]){ 
//  System.setSecurityManager(new RMISecurityManager()); 
     System.out.println("Main OK"); 
     try{ 
      ShapeList aShapelist = new ShapeListServant(); 
      System.out.println("After create"); 
      String registryURL = "rmi://localhost:" + "/ShapeList"; 
      startRegistry(); 
      Naming.rebind(registryURL, aShapelist); 
      System.out.println("ShapeList server ready"); 
     }catch(Exception e) { 
      System.out.println("ShapeList server main " + e.getMessage()); 
     } 
    } 

    // This method starts a RMI registry on the local host, if it 
    // does not already exists at the specified port number. 
    private static void startRegistry()throws RemoteException{ 
     Registry registry; 
     try { 
      registry = LocateRegistry.getRegistry(); 
      registry.list(); // This call will throw an exception 
      // if the registry does not already exist 
     } 
     catch (RemoteException e) { 
      // No valid registry at that port. 
      System.out.println ("RMI registry cannot be located at port " + Registry.REGISTRY_PORT); 
      registry = LocateRegistry.createRegistry(Registry.REGISTRY_PORT); 
      System.out.println("RMI registry created at port " + Registry.REGISTRY_PORT); 
     } 
    } // end startRegistry 
} 
+2

Google говорит об этом правильно, просто найдите ответы на эти вопросы, и вы должны быть хорошими. Для какого класса вы получаете эту ошибку? В каком банке этот класс присутствует? Наконец, это банка в вашем классе? –

+1

Пожалуйста, опубликуйте полное сообщение об ошибке, включая трассировку стека; он также сообщает вам, какой класс отсутствует. Вы должны убедиться, что класс находится в пути к классам при запуске программы. – Jesper

ответ

-1

Basicall java.lang.NoClassDefFoundError выброшен, если виртуальная машина Java или экземпляр ClassLoader пытается загрузить в определении класса (как часть нормального вызова метода или как часть создания нового экземпляра с использованием нового выражения), и определение класса не может быть найдено.

следующие ссылки будут полезны. Эти ссылки помогут вам решить проблему.

http://javarevisited.blogspot.in/2011/06/noclassdeffounderror-exception-in.html

http://javaeesupportpatterns.blogspot.in/2012/06/javalangnoclassdeffounderror-how-to.html

Надеется, что это будет полезно

+0

Обе ссылки неверны. – EJP

+0

Я не хочу спорить, но все, что я написал, есть в oracle java doc, и вы сказали: «У меня проблема с googled, и в нем говорится, что класс, доступный во время компиляции, больше не доступен во время выполнения». и если вы перейдете по ссылке: http://javarevisited.blogspot.in/2011/06/noclassdeffounderror-exception-in.html, вы будете «Что является причиной NoClassDefFoundError в Java», они ясно говорят: «NoClassDefFoundError в Java приходит, когда Java Virtual Машина не может найти определенный класс во время выполнения, который был доступен во время компиляции. «Пожалуйста, смотрите. Спасибо за комментарий – Ganesh

+0

, и я отредактировал какую-то часть, которая была неправильной – Ganesh

1

Я гугл этой проблемы, и это говорит о том, что класс, который был доступен во время компиляции больше не доступен во время выполнения.

Неправильное. Это вызовет ClassNotFoundException. У этого есть несколько причин, но наиболее распространенным является то, что класс в файле является классом, подразумеваемым именем файла и иерархией каталогов.

Смежные вопросы