2012-03-28 3 views
1

Ich muss GNU Octave in einer Windows-Umgebung verwenden. Der Octave-Prozess wird vom Java-Server mit ProcessBuilder oder Apache Commons Exec aufgerufen.Start Cygwin-Prozess von Java

Octave muss mit Cygwin ausgeführt werden. Wie rufe ich Octave am besten an?

Wenn ich versuche, Oktave zu rufen direkt aus dem Windows (ohne Java)

cygstart octave-3.6.1.exe 

ich Fehler, dass eine DLL (cygblas-0.dll) fehlt. Wenn ich Octave von Cygwin Shell (mintty.exe) starten würde, funktioniert es. Eine mögliche Frage ist also, ob es möglich ist, eine Oktave außerhalb der Cygwin-Shell aufzurufen, indem benötigte dlls bereitgestellt werden.

+2

Es sieht so aus, als ob Ihre Shell Werte von einigen Startskripten erhält. Du könntest bash -l -c/bin/ls anrufen – Jayan

+0

@Jayan Ich hatte es geschafft, das herauszufinden, danke! – egaga

+0

ist es notwendig, die Option -i (interaktiv) zu verwenden. Wenn es einen bestimmten Grund gibt, füge es bitte in deine Antwort ein. – Jayan

Antwort

2

Sind die DLLs in Ihrer PATH-Umgebungsvariablen? Zum Beispiel enthält mein PATH c: \ cygwin \ bin und ich kann cygwin 'ls' Befehl ohne Probleme ausführen.

1
new ProcessBuilder("c:/cygwin/bin/bash", 
     "-l", // login 
     "-i", // interactive 
     "-c", 
     "\"octave --help --interactive --no-line-editing\""); 

funktioniert.