2

JSP から Linux コマンドを実行する必要があります。正常に動作しています。しかし、JSPを介してLinuxの特定のディレクトリにあるshファイルを開始する必要があります。/home/username/something/start.sh と言います

try{
String command= "cd /home/username/something";

Runtime.getRuntime().exec(command);
Runtime.getRuntime().exec("./start.sh")


out.println("Child");
}
catch(Exception e)
{ out.println("Error");
}

ファイルまたはディレクトリが見つかりませんと表示されます。

試してみたところRuntime.getRuntime().exec("pwd")、「java.lang.UNIXProcess@fc9d2b」のようなものが表示されています!! :O

pwd を変更し、jsp を介していくつかのコマンドを実行する必要があります。どうやってやるの??どんな助けでも大歓迎です。

4

1 に答える 1

7

そのような作業ディレクトリを設定するべきではありません (実際には設定できないようです)。で指定された各ProcessオブジェクトRuntime.exec()には、独自の作業ディレクトリがあります。

Javaランタイムを使用して「cd」コマンドを使用する方法で回答されたように?の 3 つの引数バージョンを使用する必要がRuntime.exec()あります。このバージョンではFile、作業ディレクトリとなる を指定します。そのjavadocから:

指定された環境と作業ディレクトリを使用して、指定されたコマンドと引数を別のプロセスで実行します。

またはさらに良いのは、代わりProcessBuilderに一緒に使用することです:ProcessBuilder.directory()

ProcessBuilder pb = new ProcessBuilder("start.sh");
pb.directory(new File("/home/username/something"));
Process p = pb.start();
于 2013-03-12T12:59:17.407 に答える