Hallihallo,
Ein ähnliches Problem hab ich hier nur in einem Thread von 2007 gefunden, bei dem aber die Frage nicht weiter beantwortet wurde. Ich bin da beim Benutzen der Ant-API auf ein Problem gestossen, bei dem ich gerade nicht weiter komme.
Ich hab ein Programm, bei dem der User aus dem Programm heraus Ant anstossen kann, um andere Projekte zu bauen. Zum Thema, wie man Ant aus Java heraus aufruft, hab ich leider herzlich wenig gefunden, aber mittlerweile läuft das. Dieser Ant-Aufruf findet in einem Swingworker-Thread statt und sieht folgendermaßen aus:
Das Ant-Script ist recht komplex und irgendwann komme ich an folgende Stelle:
Genau an der Stelle haut mir Ant eine seltsame Fehlermeldung um die Ohren:
Laut den Library Dependencies in der Ant-Doku wird aber seit Ant 1.6 nicht mehr die IBM-Bibliothek verwendet (ich verwende Ant 1.7). Auch, wenn ich die dort vorgeschlagene bsf.jar von Jakarte-BSF in das Verzeichnis aus der Fehlermeldung lege, passiert immer noch das selbe.
Ich bin da momentan schlicht und ergreifend ratlos, wo der Fehler liegen könnte und bin für jeden Tip dankbar.
Gruß,
-- Christian
Ein ähnliches Problem hab ich hier nur in einem Thread von 2007 gefunden, bei dem aber die Frage nicht weiter beantwortet wurde. Ich bin da beim Benutzen der Ant-API auf ein Problem gestossen, bei dem ich gerade nicht weiter komme.
Ich hab ein Programm, bei dem der User aus dem Programm heraus Ant anstossen kann, um andere Projekte zu bauen. Zum Thema, wie man Ant aus Java heraus aufruft, hab ich leider herzlich wenig gefunden, aber mittlerweile läuft das. Dieser Ant-Aufruf findet in einem Swingworker-Thread statt und sieht folgendermaßen aus:
Code:
// look up build.xml
File buildFile = new File("build.xml");
// die zwei System-Properties muss ich manuell setzen, da Ant sonst falsche Werte nimmt
System.setProperty("java.home", System.getenv("JAVA_HOME"));
System.setProperty("ant.home", System.getenv("ANT_HOME"));
// create ant-project
org.apache.tools.ant.Project antProject = new org.apache.tools.ant.Project();
antProject.setUserProperty("ant.file", buildFile.getAbsolutePath());
// init logger for ant output
DefaultLogger consoleLogger = new DefaultLogger();
consoleLogger.setErrorPrintStream(System.err);
consoleLogger.setOutputPrintStream(System.out);
consoleLogger.setMessageOutputLevel(org.apache.tools.ant.Project.MSG_INFO);
antProject.addBuildListener(consoleLogger);
// start ant build
try {
antProject.fireBuildStarted();
antProject.init();
ProjectHelper helper = ProjectHelper.getProjectHelper();
antProject.addReference("ant.projectHelper", helper);
// parse build.xml for the ant-project
helper.parse(antProject, buildFile);
// execute
antProject.executeTarget(antProject.getDefaultTarget());
antProject.fireBuildFinished(null);
} catch (BuildException e) {
log.log("\n => " + e.getMessage() + " <=", HandleLog.WAR);
antProject.fireBuildFinished(e);
return false;
}
Das Ant-Script ist recht komplex und irgendwann komme ich an folgende Stelle:
Code:
<script language="JavaScript" manager="javax"><![CDATA[
// some java script
]]></script>
Genau an der Stelle haut mir Ant eine seltsame Fehlermeldung um die Ohren:
Cause: Could not load a dependent class com/ibm/bsf/BSFException
It is not enough to have Ant's optional JARs
you need the JAR files that the optional tasks depend upon.
Ant's optional task dependencies are listed in the manual.
Action: Determine what extra JAR files are needed, and place them in one of:
-C:\CVS_ROOT\toolchain\bin\ant\1.7.1\lib
-C:\Dokumente und Einstellungen\cfr\.ant\lib
-a directory added on the command line with the -lib argument
Do not panic, this is a common problem.
The commonest cause is a missing JAR.
This is not a bug; it is a configuration problem
Laut den Library Dependencies in der Ant-Doku wird aber seit Ant 1.6 nicht mehr die IBM-Bibliothek verwendet (ich verwende Ant 1.7). Auch, wenn ich die dort vorgeschlagene bsf.jar von Jakarte-BSF in das Verzeichnis aus der Fehlermeldung lege, passiert immer noch das selbe.
Ich bin da momentan schlicht und ergreifend ratlos, wo der Fehler liegen könnte und bin für jeden Tip dankbar.
Gruß,
-- Christian