Ik vind het echt een te stom idee om te vragen, maar na een paar dagen kom ik er nog niet uit.
Ik heb de volgende package (cq. directory) structuur.
Main\Main.class, Main.java
Model\Model.class, Model.java
Map3\...
Map4\...
Alle mappen hebben de naam van de packages en zijn automatisch door Netbeans gegenereerd. Het project compiled in Netbeans prima en ik kan het ook prima runnen. Ook extrern via het jar bestand gaat het allemaal prima.
Wat echter niet lukt is het simpele
java Main
en eerste kon javac niet eens gevonden worden. Na het aanpassen van mijn CLASSPATH en PATH variabele onder vista kan ik nu het hele project compilen via:
javac -classpath .. *.java en javac -classpath .. Main.java werkt ook
(dit toe ik dan beide vanuit de map Main)
maar het programma uitvoeren werkt nogsteeds niet via de cmdline. Ik krijg nog steeds de noclassdeffound error.
java Main vanuit de map Main werkt niet. en ook java -classpath .. Main vanuit de map Main werkt niet.
Het lijkt me toch dat als de compiler (javac.exe) alle bestanden en packages kan vinden dat java.exe het dan ook moet kunnen? Ze gebruiken dezelfde classpath variabelen neem ik aan dus die moeten nu toch goed staan. Ook lukt het me wel om andere java programmas via de commandline te runnen maar die maken geen gebruik van een "ingewikkelde" package /folders structuur.
Nog even de exacte foutmelding:
Edit: ik heb even een andere java programmatje geplukt van internet met meerdere directories en daar gaat het ook direct fout. terwijl de code compiled, klopt en erg simpel is en in Eclipse geimporteerd wel gewoon werkt.
Ik heb de volgende package (cq. directory) structuur.
Main\Main.class, Main.java
Model\Model.class, Model.java
Map3\...
Map4\...
Alle mappen hebben de naam van de packages en zijn automatisch door Netbeans gegenereerd. Het project compiled in Netbeans prima en ik kan het ook prima runnen. Ook extrern via het jar bestand gaat het allemaal prima.
Wat echter niet lukt is het simpele
java Main
en eerste kon javac niet eens gevonden worden. Na het aanpassen van mijn CLASSPATH en PATH variabele onder vista kan ik nu het hele project compilen via:
javac -classpath .. *.java en javac -classpath .. Main.java werkt ook
(dit toe ik dan beide vanuit de map Main)
maar het programma uitvoeren werkt nogsteeds niet via de cmdline. Ik krijg nog steeds de noclassdeffound error.
java Main vanuit de map Main werkt niet. en ook java -classpath .. Main vanuit de map Main werkt niet.
Het lijkt me toch dat als de compiler (javac.exe) alle bestanden en packages kan vinden dat java.exe het dan ook moet kunnen? Ze gebruiken dezelfde classpath variabelen neem ik aan dus die moeten nu toch goed staan. Ook lukt het me wel om andere java programmas via de commandline te runnen maar die maken geen gebruik van een "ingewikkelde" package /folders structuur.
Nog even de exacte foutmelding:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| C:\<censuur>\src\Main>java Main
Exception in thread "main" java.lang.NoClassDefFoundError: Main (wrong name: Mai
n/Main)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source) |
Edit: ik heb even een andere java programmatje geplukt van internet met meerdere directories en daar gaat het ook direct fout. terwijl de code compiled, klopt en erg simpel is en in Eclipse geimporteerd wel gewoon werkt.
[ Voor 4% gewijzigd door roy-t op 23-06-2008 10:24 ]