2016-04-10 18 views
-1

Ich habe diese Struktur in meinem OrdnerKompilierung Klasse mit einer anderen Klasse Abhängigkeit

SupportUtils.groovy 
Main.java 
groovy-all-2.4.6.jar 

I groovy Datei mit dem Befehl groovyc SupportUtils.groovy und erhalte mehr .class Dateien kompiliert.

Jetzt möchte ich Main.java Datei kompilieren. Ich betreibe diesen Befehl

javac -cp groovy-all-2.4.6.jar Main.java 

aber ich bekomme Fehler

Main.java:6: error: cannot find symbol 
      List<String> list = SupportUtils.readFile("file.txt"); 
           ^
symbol: variable SupportUtils 
location: class Main 

was bedeutet, dass es nicht SupportUtils Klasse finden. Ich habe keine Paketdeklarationen in Main.java oder SupportUtils.groovy.

Also, wie sollte ich meine Main.java Klasse in diesem Fall kompilieren?

+0

Haben Sie versucht, '' '.class''' Dateien zu Ihrem Klassenpfad hinzuzufügen? Vielleicht sind die SupportUtils nicht im Jar. –

+0

Ich dachte, es wäre in der Lage, es im selben Ordner zu finden. Ich habe falsch geraten. – lapots

Antwort

2

Wenn Ihre Klassen von groovy sind nur in den aktuellen Ordner abgeladen, müssen Sie wahrscheinlich den aktuellen Ordner in dem Classpath

javac -cp .:groovy-all-2.4.6.jar Main.java 

hinzuzufügen, dem Sie unter Linux oder osx ist vorausgesetzt (Sie nicht sagen,)

So wie du Dinge tust, ist nicht eine sehr schöne Art und Weise, Dinge zu tun, obwohl

ein Build-Tool wie gradle wird Ihren Code helfen zu organisieren und Ihren Build reproduzierbar zu machen, incase jemand anderes muss bilde den Code oder eine Form von Continuou s Deployment-Tool wird verwendet

+0

Warum brauche ich 'gradle', um ein paar Testklassen mit 5-10 Zeilen Code zu kompilieren? Ich erstelle in diesem Fall kein Projekt. – lapots

+0

Auch, danke, es funktioniert jetzt! – lapots

+1

Einstellungen bis Gradle würden einige Minuten dauern und Sie vor diesem Problem bewahren. sicherlich das allein würde es sich lohnen? – tddmonkey

Verwandte Themen