Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Errore "java.lang.NoClassDefFoundError" + difficolta' con import e package

    Nella locazione U:\Simulatore possiedo i seguenti sorgenti, che fanno parte del package "simulatore":

    codice:
    package simulatore;
    
    public class Sim
    {
    	public static void main (String args[])
    	{
    		try{
    		SimulatoreClosedNet S = new SimulatoreClosedNet(1, 2, 3);
    		}catch (Exception e)	{System.err.println(e);}
    	}
    }

    Questo main richiama il costruttore nella relativa classe (ne riporto solo le parti fondamentali perche' il codice e' piuttosto lungo)

    codice:
    package simulatore;
    
    import java.util.ArrayList;
    import java.util.LinkedList;
    import java.util.Collections;
    import random.*;
    import java.io.*;
    
    public class SimulatoreClosedNet
    {
                  [...]
    
    	public SimulatoreClosedNet (double seed, int N, int M, String fileInput) throws random.GRUnif01.SeedException
    	{
                  [...]
    	}
    
    	public SimulatoreClosedNet(double seed, int N, int M) throws random.GRUnif01.SeedException
    	{
                  [...]
    	}
    
    
                  [...]
    }
    Compilando tutto, quando tento di avviare il programma, questo restituisce il seguente messaggio:

    U:\Simulatore>java Sim
    Exception in thread "main" java.lang.NoClassDefFoundError: Sim (wrong name: simulatore/Sim)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java :620)
    at java.security.SecureClassLoader.defineClass(Secure ClassLoader.java:124)
    at java.net.URLClassLoader.defineClass(URLClassLoader .java:260)
    at java.net.URLClassLoader.access$100(URLClassLoader. java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java: 195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.j ava:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:3 06)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launche r.java:268)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:2 51)
    at java.lang.ClassLoader.loadClassInternal(ClassLoade r.java:319)
    Perche'? E' un errore nel package o dovrei fare un import? (ho tentato ma i risultati sono stati anche peggiori). Perche' non trova la classe? Dove sbaglio?

    Grazie a chiunque possa fare un minimo di chiarezza.

    L.G.

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    quando una classe è dentro a un package, vuol dire che sul file system deve stare in una directory con il nome del package
    $ROOT/simulatore/Sim.class
    e devi avviare la classe con java package.classe
    java simulatore.Sim

  3. #3
    Ho rinominato la directory in "simulatore" (penso sia key-sensitive) e li' dentro ci sono tutti i file del package. Compreso Sim.java

    Ho avviato (dopo aver nuovamente ricompilato) il programma come suggerito:

    U:\simulatore>java simulatore.Sim
    Ma questo e' l'errore che torna:

    Exception in thread "main" java.lang.NoClassDefFoundError: simulatore/Sim

    Mi sembra di aver seguito alla lettera i suggerimenti, o sto facendo ancora qualche cavolata?

    Grazie del pronto aiuto!

    L.G.

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    devi spostarti in u:\

  5. #5
    Cioò devo eseguire il comando da U:\ oppure devo spostare il file "Sim.class" in U:\?

    Grazie della dritta!

    L.G.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.