人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

JAVAのアプリからLINUXのBASHシェルスクリプトを動かすにはどうすればいいですか。

●質問者: W_for_W
●カテゴリ:ウェブ制作
✍キーワード:bash Java Linux アプリ シェルスクリプト
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● tonolove
●10ポイント

http://www.gimlay.org/~javafaq/S103.html

これでいかがでしょうか。


2 ● dev_zer0
●30ポイント

http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/Runtim...

Runtime (Java 2 $B%W%i%C%H%U%)!<%`(J SE v1.4.0)

(java.lang.String)

ファイルaaaを削除するサンプルプログラム

class test {

public static void main(String []args) {

try {

Runtime.getRuntime().exec(”rm aaa”);

System.exit(0);

} catch(Exception e) {

System.exit(1);

}

}

}


3 ● HeRo
●100ポイント

java.lang.Runtime.exec()メソッドで実行できます。

私は過去に次のようなクラスを作りWebアプリ上で動かしていました。

javaが走るシェルで、実行したいコマンドにpathが通っていなければうまく動かないです。まあ、フルパスでコマンドを指定すればpathを通す必要はないですが。

<pre>

package net.aqua.commons.util;

import java.io.*;

import java.io.BufferedReader;

import java.io.InputStreamReader;

/**

* 外部コマンドを実行するクラス。

* 外部コマンドを実行し、そのコマンドが標準出力に出力する文字列を取得することができる。

*

* @since 2004/05/05

* @author Net Aqua Project all rights reserved.

*/

public class CommandExecuter implements Runnable {

private StringWriter strWriter;

private PrintWriter pwriter;

private BufferedReader buffReader;

/**

* コンストラクタ

*/

public CommandExecuter() {

}

/**

* 外部コマンドを実行する。

* @param command 実行する外部コマンド

* @return String 外部コマンドが標準出力に出力する実行結果

* @throws IOException

*/

public String doExec(String command) throws IOException{

Runtime rt = Runtime.getRuntime();

Process proc = rt.exec(command);

buffReader = new BufferedReader(new InputStreamReader(proc.getInputStream()));

strWriter = new StringWriter();

pwriter = new PrintWriter(strWriter);

//出力結果を読み終わるまで待つ。

Thread th = new Thread(this);

th.start();

try {

th.join();

} catch (InterruptedException e) {

throw new IOException(”Command Exec Failed”);

}

buffReader.close();

pwriter.close();

//文字列の最後の改行を削除する。

String temp = strWriter.toString();

if ((temp.length() > 1) && (temp.substring(temp.length() - 1).getBytes()[0] == 10)) {

temp = temp.substring(0,temp.length() - 1);

}

return temp;

}

/**

* コマンドの実行結果を読み出す。

* @see java.lang.Runnable#run()

*/

public void run() {

String line = null;

try {

while((line = buffReader.readLine()) != null ) {

pwriter.println(line);

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

</pre>

◎質問者からの返答

具体的な回答を教えていただきましてありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ