Hallo,
habe folgendes Problem und wäre überglücklich, wenn jemand Hilfe hätte:
------------
Derzeit gehe ich so vor (funktoniert)
Ich starte folgendes batch (z. B. um den Klassenpfad zu setzen):
startcmd.bat
Im sich öffnenden "DOS-Fenster" gebe ich folgenden Befehl ein:
java -jar lib/dost.jar /i:E:/DitaEx/syntext/cool-colors.xml /transtype
df
(Einstellungen vom Batch sind hierfür erforderlich)
Nun passiert was ich will (aus der XML wird ein PDF erzeugt).
Nun will ich dasselbe aber aus einer Klasse heraus lösen (funktioniert nicht):
Dies liefert folgenden Fehler:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:838)
at java.util.Scanner.next(Scanner.java:1347)
at ant.AntTest.main(ConversionFromJavaTest .java:20)
Es wird auch kein PDF aus der XML erzeugt.
Die Frage, etwas allgemeiner ausgedrückt:
Wie führe ich aus einer Java-Klasse erst ein batch aus (um z. B. den Klassenpfad zu setzen) und starte danach ein jar (java -jar ...), das die "Einstellungen" des Batches benutzt/benötigt???
Alternativ könnte man vielleicht auch auf das Batch verzichten und die Arbeit des batches in der Klasse erledigen?! Habe hier aber auch keinen Ansatz gefunden.
-------
1000 Dank im Voraus!
habe folgendes Problem und wäre überglücklich, wenn jemand Hilfe hätte:
------------
Derzeit gehe ich so vor (funktoniert)
Ich starte folgendes batch (z. B. um den Klassenpfad zu setzen):
startcmd.bat
Code:
REM This file is part of the DITA Open Toolkit project hosted on
REM Sourceforge.net. See the accompanying license.txt file for
REM applicable licenses.
REM (c) Copyright IBM Corp. 2006 All Rights Reserved.
REM Get the absolute path of DITAOT's home directory
set DITA_DIR=%~dp0
REM Set environment variables
set ANT_OPTS=-Xmx512m %ANT_OPTS%
set ANT_HOME=%DITA_DIR%tools\ant
set PATH=%DITA_DIR%tools\ant\bin;%PATH%
set CLASSPATH=%DITA_DIR%lib;%DITA_DIR%lib\dost.jar;%DITA_DIR%lib\resolver.jar;%DITA_DIR%lib\fop.jar;%DITA_DIR%lib\avalon-framework-cvs-20020806.jar;%DITA_DIR%lib\batik.jar;%DITA_DIR%lib\xalan.jar;%DITA_DIR%lib\xercesImpl.jar;%DITA_DIR%lib\xml-apis.jar;%DITA_DIR%lib\icu4j.jar;%CLASSPATH%
start "DITA-OT" cmd.exe
Im sich öffnenden "DOS-Fenster" gebe ich folgenden Befehl ein:
java -jar lib/dost.jar /i:E:/DitaEx/syntext/cool-colors.xml /transtype
(Einstellungen vom Batch sind hierfür erforderlich)
Nun passiert was ich will (aus der XML wird ein PDF erzeugt).
Nun will ich dasselbe aber aus einer Klasse heraus lösen (funktioniert nicht):
Code:
public class ConversionFromJavaTest {
public static void main( String[] args ) throws IOException
{
String[] commands = {"cmd", "E:/DITA/startcmd.bat", "java -jar lib/dost.jar /i:E:/DitaEx/syntext/cool-colors.xml /transtype:pdf"};
ProcessBuilder builder = new ProcessBuilder( commands );
Process p = builder.start();
Scanner s = new Scanner( p.getInputStream() ).useDelimiter( "\\Z" );
System.out.println( s.next() );
}
}
Dies liefert folgenden Fehler:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:838)
at java.util.Scanner.next(Scanner.java:1347)
at ant.AntTest.main(ConversionFromJavaTest .java:20)
Es wird auch kein PDF aus der XML erzeugt.
Die Frage, etwas allgemeiner ausgedrückt:
Wie führe ich aus einer Java-Klasse erst ein batch aus (um z. B. den Klassenpfad zu setzen) und starte danach ein jar (java -jar ...), das die "Einstellungen" des Batches benutzt/benötigt???
Alternativ könnte man vielleicht auch auf das Batch verzichten und die Arbeit des batches in der Klasse erledigen?! Habe hier aber auch keinen Ansatz gefunden.
-------
1000 Dank im Voraus!