2010-03-24 13 views
5
package pack; 


public class sample{ 

public static void main(String input[]) 
    { 

     NumberFormat numberFormat = new DecimalFormat("#,##0.00##"); 
    System.out.println(numberFormat.format(44533125.00)); 

    } 
} 

kod działa poprawnie w bieżącym reż .. (c:/myprogram /).Wyjątek w wątku "główny" java.lang.NoClassDefFoundError

później skopiuję plik sample.class i wkleję go do innego katalogu (d:/myprogram). mam błąd podczas uruchamiania, jak

 
Exception in thread "main" java.lang.NoClassDefFoundError: sample (wrong name: pack/sample) 

W pliku .class Java można uruchomić w dowolnym porządku? ale dlaczego nie jestem w stanie uciec?

+4

dlaczego to jest wiki społeczności? – medopal

Odpowiedz

18

Powinieneś mieć plik klasy w pakiecie - powinien więc znajdować się w katalogu o nazwie pack. Następnie z katalogu nadrzędnego w ścieżce klasy, można by uruchomić

java pack.sample 

(Należy również zmienić nazwę klasy do Sample przestrzegać konwencji, btw - i uruchomić pack.Sample.)

Jeśli budujesz przy pomocy javac, określ opcję "-d", aby przekazać mu katalog podstawowy, i jeśli to konieczne, utworzy odpowiednią strukturę pakietu. Na przykład:

javac -d classes Sample.java 

lub

javac -d classes src/pack/Sample.java 

będzie (w obu przypadkach) tworzą

classes/pack/Sample.class 

Następnie można uruchomić

java -cp classes pack.Sample 
+0

yes..its working – Manu

-1

Jeśli nie korzystasz z pojedynczym plik java/class można również usunąć statemen pakiet t.

0

IntelliJ i być może inne IDE nie wpływają na konfigurację Run/Debug. Musisz ręcznie zmienić nazwę pakietu przed nazwą głównej klasy. Na przykład zmień "sample.Main" na "com.company.package.ui.Main", aby przy następnym uruchomieniu był poprawnie uruchamiany. IDE mogło już oznaczać przycisk Run/Debug z czerwonym krzyżem, ponieważ nie mógł znaleźć głównej klasy. Daje także ostrzeżenie po otwarciu konfiguracji Run/Debug.

Powiązane problemy