• ベストアンサー

javaでコマンドプロンプトの呼び出し

javaからコマンドプロンプトを起動させコマンドを実行させたいのですがどうやればいいでしょうか? コマンドプロンプトは起動しなくてもコマンドが実行できればいいんですが・・・。 具体的にはcopy等のコマンドが使いたいです。できればtelnetも使えればとおもっていますが。。。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.3

度々すいません。 Process p = Runtime.getRuntime().exec("cmd.exe /copy ~");            ↓ Process p = Runtime.getRuntime().exec("cmd.exe /c copy ~"); です。

ainobakuda
質問者

補足

回答ありがとうございます。 補足までしていただいて。。 聞きたかったものがまさにって感じなのでこれを参考にさせてもらいます。 ありがとうございました。

その他の回答 (2)

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

すいません。JavaScriptと勘違いしてしまいました。 //コマンド実行 Process p = Runtime.getRuntime().exec("cmd.exe /copy ~"); //標準出力取得 BufferedReader i = new BufferedReader(new InputStreamReader(p.getInputStream())); //標準エラー取得 BufferedReader e = new BufferedReader(new InputStreamReader(p.getErrorStream())); String s; while( true ) {   s = i.readLine(); //標準出力から1行入力   if ( s == null ) break; //EOFになったら抜ける   System.out.println(s); } while( true ) {   s = e.readLine(); //標準エラーから1行入力   if ( s == null ) break; //EOFになったら抜ける   System.out.println(s); } //終了を待ち合わせる p.waitFor(); //終了コードを表示 System.out.println(p.exitValue()); こんな感じ

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

Windows Scripting Host の技術を使います。 http://msdn.microsoft.com/ja-jp/library/cc364455.aspx http://msdn.microsoft.com/ja-jp/library/cc364356.aspx http://msdn.microsoft.com/ja-jp/library/cc364421.aspx RunはVBScriptの例しかないので、JavaScript例を記載します。 Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "%windir%\notepad " & WScript.ScriptFullName          ↓ var wshShell = new ActiveXObject("WScript.Shell"); wshShell.Run("%windir%\\notepad " + WScript.ScriptFullName); 主要変更箇所は以下の通りです。 (1)OLE作成:CreateObject("~")→new ActiveXObject("~") (2)引用符内の\:2個重ねる (3)文字列の結合:& → + (4)メソッドは()を付ける:WshShell.Run "~"→wshShell.Run("~");

ainobakuda
質問者

補足

回答ありがとうございます。 残念ですが、WSHではなくjavaアプリケーションから呼び出したいんです。 ずうずうしいようですが出来るだけ手軽な例でお願いします。 よろしくお願いします。