| 

.NET C# Java Javascript Exception

Probleme beim Kompilieren groovy -> class -> jar

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


Probleme beim Kompilieren groovy -> class -> jar

mabu - 22.09.2009 11:13
Hallo beisammen.
Ich habe mich mit dem Thema beschäftigt, einen Passwort-Generator zu schreiben, bei dem man einstellen kann, welche und wieviele Parameter enthalten sein sollen/dürfen. Das hat soweit auch gut geklappt, so lange ich das in der Groovy-Console ausführe.
Jetzt hab ich mir überlegt, ich kompiliere das ganze, damit ich es auf jeder anderen Maschine laufen lassen kann. Das kompilieren in class-Files war kein Problem, was sind nur etwas mehr als ich zuerst dachte (da jede Closure eine class-File bekommt)
c:\Programme\Groovy\Groovy-1.6.4\bin\groovyc passwordGenerator.groovy --> klappt und erzeugt einige class Dateien im Verzeichnis.

Das Probelm das ich jetzt habe ist, dass ich die Class-Files nicht und eine *.jar-File kompilieren kann.
java -cp c:\Programme\Groovy\Groovy-1.6.4\embeddable\groovy-all-1.6.4.jar;. passwordGenerator.class gibt mir folgenden Fehler:
Exception in thread "main" java.lang.NoClassDefFoundError: passwordGenerator/class
Caused by: java.lang.ClassNotFoundException: passwordGenerator.class
        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)
Could not find the main class: passwordGenerator.class.  Program will exit.

Kann mir da jmd weiterhelfen? Ich stehe da ein wenig auf dem Schlauch


Anbei noch den Code den ich benutzt habe...
Language: Groovy
def upperChars = &#91;&#93; &#40;'A'..'Z'&#41;.each &#123; upperChars << it.toString&#40;&#41; &#125; def lowerChars = &#91;&#93; &#40;'a'..'z'&#41;.each &#123; lowerChars << it.toString&#40;&#41; &#125; def special = &#91;&#93; &#40;'!'..'?'&#41;.each &#123; if&#40;!it.isNumber&#40;&#41;&#41; special << it.toString&#40;&#41; &#125; special << '§' << '_' def numbers = &#91;&#93; &#40;0..9&#41;.each &#123; numbers << it.toString&#40;&#41; &#125; def createPassword = &#123; up,low,num,sp -> def sb = new StringBuilder&#40;&#41; def rnd = new Random&#40;&#41; def code = &#91;&#93; def spit = false up.times &#123; code << upperChars&#91;rnd.nsptInt&#40;upperChars.size&#41;&#93; &#125; low.times&#123; code << lowerChars&#91;rnd.nsptInt&#40;lowerChars.size&#41;&#93; &#125; num.times&#123; code << numbers&#91;rnd.nsptInt&#40;numbers.size&#41;&#93; &#125; sp.times &#123; code << special&#91;rnd.nsptInt&#40;special.size&#41;&#93; &#125; Colllections.shuffle&#40;code,rnd&#41; code.each&#123; sb.append&#40;it&#41;&#125; sb.toString&#40;&#41; &#125; println '100 Passwords with 2 upper and 2 lower characters, 2 numbers, 2 special characters\nEach starting with a character, ending with a number:\n' 10.times&#123; counter = 0 while&#40;counter < 10&#41;&#123; //create passwords with (number of upper characters, number of lower characters,number of numbers, number of special characters) codeString = createPassword&#40;2,2,2,2&#41; if&#40;codeString.find&#40;/^&#91;a-zA-Z&#93;/&#41; && codeString.find&#40;/\d$/&#41; &#41;&#123; print codeString+'\t'; counter++ &#125; else continue &#125; println ' ' &#125;


Re: Probleme beim Kompilieren groovy -> class -> jar

christian - 22.09.2009 11:24
Ich bin mir zwar nicht sicher, aber vielleicht brauchst du dafür eine Klasse mit einer main-Methode.

Gruß
Christian


Re: Probleme beim Kompilieren groovy -> class -> jar

mabu - 22.09.2009 12:18
Das hab ich probiert, bin aber auf keinen grünen Zweig gekommen. Oder ich hab mich zu doof angestellt.
Wenn ich dabei etwas übersehen habe, bitte immer gern her mit dem Tip damit ^^
Wie würdest du das jetzt mit einer main implementieren (vielleicht hatte ich den falschen Ansatz...)


Re: Probleme beim Kompilieren groovy -> class -> jar

mabu - 22.09.2009 13:54
Danke für die Hilfe, ich bin leider trotzdem nicht weiter gekommen.
Die Datei in der das Skript steht habe ich in Passwords.groovy umbenannt und
im Skript im Prinzip nur
Language: Groovy
class Passwords&#123; static void main&#40;args&#41;&#123;
davor gesetzt (natürlich unten auch die Klammern wieder geschlossen). Das hat
nachdem ich noch kleine Anpassungen machen musste geklappt und das Skript
konnte ich wieder laufen lassen (exakt wie vorher auch)
Beim erneuten kompillieren allerdings wieder der gleiche Fehler:
Exception in thread "main" java.lang.NoClassDefFoundError: Passwords/class
Caused by: java.lang.ClassNotFoundException: Passwords.class
Kann es daran liegen, dass es mehrere class-Dateien zu kompillieren gibt?

Nachtrag:
Inzwischen hab ich mich daran versucht einen Workaround zu finden und mich einfach mal
Netbeans/Eclipse bedient. Dabei musste ich feststellen, dass das Problem wohl etwas tiefer
liegt als zuerst gedacht.
Trotz den Entwicklungsumgebungen ist es mir nicht gelungen, das Projekt als *.jar Datei zu
erzeugen oder auszuführen. Beide hauen mir nur so die Exceptions um die Ohren ... ^^


Re: Probleme beim Kompilieren groovy -> class -> jar

manfred - 23.09.2009 08:59
java.lang.NoClassDefFoundError: groovy/lang/GroovyObject
Das bedeutet das die Groovy Runtime Bibliotheken nicht im Classpath sind.


Manfred


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "Probleme beim Kompilieren groovy -> class -> jar" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.