• ベストアンサー

c言語ではsystem(・・・) javaでは?

c言語ではsystem(・・)と書くとコマンドプロセッサ上で 実行してくれます。 http://www.bohyoh.com/CandCPP/C/Library/system.html 例 #include <stdio.h> void main(){ system(dir); } 実行した結果、dirをコマンドプロセッサ上で実行してくれます。 javaで同じことをしたいのですが、どうすればいいのでしょうか。 調べてみた結果わかりませんでした。 できたら簡単なサンプルを教えてくれませんか。 申し訳ありませんが、よろしくお願いします。

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

  • ベストアンサー
  • buriburi3
  • ベストアンサー率44% (353/792)
回答No.2

dirと言う実行モジュール(dir.exeまたはdir.com)は存在しないので実行できなくて当然です。 ※Unix系のlsは実行モジュールが存在します。 参考ページにシェルを呼べって書いてありませんでしたか? NT系のWindowsの場合 cmd /C"dir" になると思います。 ※いまさら使わないと思うけど9x系のWindowsだとcommandです。

usa_philly
質問者

お礼

色々ありがとうございます。 解決しました。

その他の回答 (1)

  • buriburi3
  • ベストアンサー率44% (353/792)
回答No.1

検索したらすぐに見つかったよ? http://javafaq.jp/S103.html うろ覚えだけど何か使用上の問題があったような気がします。 ※メモリーリークか何かが原因でエラーが発生したような…

usa_philly
質問者

お礼

ありがとうございます。 そちらのサイトを参考につくってみたのですが、 実行されないんです。 どうしてでしょうか? よろしくお願いします。 import java.io.*; public class TestExec1 { public static void main(String[] args) { try { String s1 = "dir"; Process process = Runtime.getRuntime().exec(s1); InputStream is = process.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String line; while ((line = br.readLine()) != null) { System.out.println(line); } } catch (Exception e) { e.printStackTrace(); } } }

関連するQ&A

  • llc system("dir").c

    llcのDOSコンパイラでsystem("dir");というソースを 含めると、その部分で実行時に 正しいコマンド インタープリタの名前を入力してください. (例 : C:\COMMAND.COM) >> というメッセージが表示されます。 #include <iostream.h> int main() { system("dir"); return 0; } このソースをDOSコンパイラ用に書き換えたいのです。 #include <stdio.h> int main() { system("dir"); return 0; } このようにするとllcでコンパイルできますが、おそらく #include <stdio.h>しか使っていないためにsystem関数がうまく 動作しないようです。 どうしたらシステム関数のようなことができますか?

  • java C言語では[system(**)]

    c言語ではコマンドラインに指定の文字列を入れて実行させるには system(***); をつかいますが javaではどのように書くのでしょうか?・ ご教授お願いします。

  • C言語からjavaを呼び出したい

    C言語からjavaを呼び出したいのでjniを使うことにしました。 各言語のソースはWebで見つけたサンプルを見ながら何とか作成し、各々コンパイルまで終わったのですが、javaのオブジェクト(?)をどこに置いたら良いのかさっぱりわかりません。 java使いの人達には常識の話だと思いますがjavaはサーブレットしか作ったことが無くどうしたものかと困っています。 分からないのは次の2点です。 1.classファイルのままでも良いのかjarにしないといけないのか? 2.どこに設置したら良いのか? これまでやったこと 1.javaのソースを作成しコンパイルしました(classファイルのままです) 2./etc/profileに次のコマンドを追加しました。 LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/java/jdk1.7.0_03/jre/lib/amd64/server export LD_LIBRARY_PATH 3.C言語のソースを次のコマンドでコンパイルしました。 % gcc -I/usr/java/jdk1.7.0_03/include/ -I/usr/java/jdk1.7.0_03/include/linux -L/usr/java/jdk1.7.0_03/jre/lib/amd64/server -ljvm -lpthread jnitest.c -o jnitest 4.javaモジュールの設置←これがわかりません 初歩的な質問で申し訳ありませんがご教示下さい。

    • ベストアンサー
    • Java
  • C言語にはJavaのような豊富なライブラリはないんでしょうか?

    C言語にはJavaのような豊富なライブラリはないんでしょうか? JavaにはTreeSet, Vector, LinkedListなどの便利なライブラリがありますが、C言語にはこういったのはないのでしょうか?string.hやstdio.hなどはあるのは知っていますが、Javaほどライブラリにある関数が少ないと思いますが、どうなんでしょう?CでLinked Listを使いときなどは自分で書くしかないのでしょうか?

  •  現在、私はC言語を学んでいます。

     現在、私はC言語を学んでいます。  プログラミングの初期の初期の問題なんですが、 「Hello World」という有名なプログラムがありますよね? それについての質問です。 #include<stdio.h> main() { printf("Hello World"); return 0; } も #include<stdio.h> main(void) { printf("Hello World"); return 0; } も #include<stdio.h> int main() { printf("Hello World"); } もちゃんと表示できます。 ここで質問です。 int main(void) int main() main() main(void) はどう違うんですか? あと、 return 0; はあっても無くてもいいようなんですが どういう意味があるんでしょうか?

  • C言語初心者です。

    C言語初心者です。 1^2-2^2+3^3-4^2…+99^2-100^2の値を求めるプログラムを作成したいのですが上手くいきません。 どこが足りないのですか? #include <stdio.h> int main(void) { printf("%d", 1^2 - 2^2 + 3^2 - 4^2 … + 99^2 - 100^2); return (0); } よろしくお願いします。

  • C言語で乱数がうまく効きません。下記のソースでコンパイルして実行すると

    C言語で乱数がうまく効きません。下記のソースでコンパイルして実行すると結果が130固定となってしまいます。 #include <stdio.h> #include <stdlib.h> int main(void){ int x; x = rand(); printf("%d",x); return 0; } 使っているコンパイラはBorland C++ 5.5.1です。何か間違いでもあるのでしょうか?よろしくお願いします。

  • C言語の勉強

    学校でLinuxのPCを使って、emacsと言うアプリケーションでc言語のプログラムを書いて、コンパイラでコンパイルして、ktermと言うアプリケーションで実行結果を出力しています。 これを自宅でも復習などでしたいのですが、自分のPCはWindows Vistaなのでいまいちやり方がwかりません。。。なにか変わりになるようなソフトを紹介してください。よろしくお願いします。 ちなみにプログラムは  #include<stdio.h> int main(void) { --- return(0)} みたいな感じです。よろしくお願いします。

  • javaの実行について

    java入門の入門で、javaの勉強を始めた初心者です。その中で、わからないことが出てきたので、助けてください。  public class sample { public static void main(String[] args) { System.out.println("hello!"); } } というプログラムを書いて、コンパイルし、実行したのですが、 Exception in thread "main" java.lang.NoClassDefFoundError: sample/class というメッセージが出てきて実行できませんでした。ファイル名は、正確に入力しました。ちなみに、 sourceというディレクトリを作ってその中に、プログラムとコンパイルしたファイルを入れています。 C:\Source のディレクトリ 005/08/21 01:15 <DIR> . 005/08/21 01:15 <DIR> .. 005/08/21 04:59 412 sample.class 005/08/21 01:14 108 sample.java 2 個のファイル 520 バイト 2 個のディレクトリ 78,121,422,848 バイトの空き領域  そして、環境変数pathは、  C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Common Files\Adaptec Shared\System;C:\Program Files\Common Files\Ulead Systems\MPEG;C:\ Program Files\Java\jdk1.5.0_04\bin です。長くなってしまいましたが、ここで止まってしまって先に進めません。どうかアドバイスをお願いします。

    • ベストアンサー
    • Java
  • プログラミング言語Cとプログラミング言語C++

    プログラミング言語Cとプログラミング言語C++の違いって何ですか? あと、プログラミング言語C++についていくつか質問があります。 #include <iostream> using namespace std; void main(){ cout << "Hello world!" << endl; } このプログラムについて質問なんですが、iostreamってプログラミング言語Cで言うstdio.hのことですか? using namespace stdって何ですか? あと、 cout <<"Hello world!"って何ですか?

専門家に質問してみよう