Eclipse Compiler

anduril23

Grünschnabel
Hallo zusammen,
ich habe ein großes Java Projekt mit vielen Abhängigkeiten, das in Eclipse erstellt wurde. Dieses würde ich nun gerne aus einen anderen Projekt heraus kompilieren lassen. Am besten mit dem Eclipse Compiler. Habe es so versucht:

Code:
File startfile = new File("...");
String classpath = "/projectroot/src/:/lib/dep1.jar:/lib/dep2.jar...";

org.eclipse.jdt.internal.compiler.batch.Main.main(new String[] {"-classpath", classpath, startfile.getAbsolutePath(),"-source","1.6","-target","1.6","-d","/Users/username/bin","-warn:none"});
Mein Problem ist dass immer irgendwelche Packages nicht gefunden werden:

Code:
The import ... cannot be resolved

Obwohl ich mir eigentlich sicher bin, dass der classpath richtig ist. Hab von allen Jars den absoluten Pfad drin und vom zu kompilierenden Projekt ebenfalls den absoluten Pfad bis zum src Folder. Leider habe ich mit javac auf der Konsole das gleiche Problem, was ich mir nicht so ganz erklären kann. Ich vermute, dass die Kompilierreihenfolge einfach falsch ist. Gibt es eine Möglichkeit zu sehen, wie genau Eclipse die ganzen Dateien kompiliert?

Vielen Dank
 
Hi,
die Idee ist gut aber leider gibts da das gleiche Problem. Die build.xml läuft zwar wunderbar durch aber nur weil der Ordner bin existiert in dem alle, während der Entwicklung kompilierte class Dateien liegen und der sich im Classpath des Kompiliervorgangs befindet. Sobald ich diesen lösche schlägt das die build.xml erneut fehl.

----------
Edit:
Das Ant Script scheint doch gut zu funktionieren. Hab gemerkt, dass ein enum Vergleich fehlt schlägt und einige unerklärliche Fehler nach sich zieht. Auf jeden Fall läuft es jetzt durch :) Hab mit Ant leider kaum Erfahrung. Gibt es eine Möglichkeit dass auszuführen, ohne einen Konsolenbefehl über die Runtime zu geben?
 
Zuletzt bearbeitet:
In Eclipse selber gibts dazu den AntRunner.
Der AntRunner erwartet lediglich den Pfad zur build.xml, sollte also passen.

Musst halt mal gucken, in welcher Jar der drinliegt und welche Abhängigkeiten das wiederum nach sich zieht.
Ich könnte mir allerdings auch vorstellen, dass es sowas wie den AntRunner auch außerhalb von Eclipse gibt, ist aber eigentlich egal.
 
Zurück