• ベストアンサー

Javaで他のソフトを制御したいのですが。

 Javaで他のソフトを制御したいのですが、どうしたらよいでしょうか?C#では、他のアプリケーションを起動Process.Start()メソッドってあるのですが、Javaにもそのようなクラスはありますか?

  • Java
  • 回答数3
  • ありがとう数3

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

  • ベストアンサー
  • hidebu-
  • ベストアンサー率53% (45/84)
回答No.2

とりあえず java.lang.Runtime でプロセスの起動はできます。 ただ、ネイティブではないので、プロセスに対してフックをかけたり、メッセージやシグナルを送ったりすることは不可能です。 細かい制御をしようとおもえばJNIインターフェースを使用してネイティブメソッドを作成していかないと無理です。

yasunori1984
質問者

お礼

迅速な回答ありがとうございます。JNIインターフェースについて調べてみようと思います。

yasunori1984
質問者

補足

メモ帳やメッセンジャーは起動するプログラムはできたのですが、いくつか起動できないアプリがあります。これらのアプリはどうしたら起動できるようになりますか?JNIを用いてDLLを作れば可能となりますか?

その他の回答 (2)

  • hidebu-
  • ベストアンサー率53% (45/84)
回答No.3

DLLやSOを使用すれば起動できないことはありません。 ただ Runtime#exec();でもそうですが メモ帳やメッセンジャーは環境変数のPATHがとおっているために実行ファイル名を指定してやるだけで起動できますが、環境変数にパスが通ってない場合はフルパスで実行ファイルを指定してやらないといけません。 これはWinApi等のCreateProcessでも同じです。

  • uzzra
  • ベストアンサー率43% (55/127)
回答No.1

Runtime.exec() でよろしいのではないでしょうか。 詳しくは以下URLをどうぞ。

参考URL:
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/lang/Runtime.html
yasunori1984
質問者

お礼

迅速な回答ありがとうございます。参考URLを調べてみます。

関連するQ&A

  • JAVA VMの2回目以降の起動が早いのはなぜでしょうか。JAVAのプ

    JAVA VMの2回目以降の起動が早いのはなぜでしょうか。JAVAのプロセス自体は起動毎に作成されているので、プロセスが常駐しているということではなさそうですが、メモリのどこかに情報が残っているのでしょうか。 また、JAVAの画面アプリケーション等で、初回の起動が遅く2回目以降は早くなるのは、VMの起動速度だけではなさそうなのですが、ロードしたクラスの情報もどこかに残っているのでしょうか。

  • 他のマシンのプロセス制御

    他のPCのプロセス制御が可能なフリーソフトを教えてください。 VC付属PVIEW.EXEのようなものです。(これは表示するだけですけど) 起動や終了もしたいです。 クライアントの管理者権限は持っておりNT/2000/XPです。 必要であればそのマシンにログインするためのID&PASSを聞いてきてもかまいません。 特にクライアントに特別なソフトを入れることなく制御したいです。

  • javaで

    フォルダに AA.java, BB.java, CC.java, ‥という不特定多数のクラスがあって メソッドString name()を3つとも実装しているとします。 そのメソッドを呼ぶと、クラスの名前AAやBBが返戻地として返されるとします。いまこのフォルダにあるすべてのクラスの、このメソッドを よぶとします。クラスの数はいくつあるのかはわかりません。このメソッドをよんですべてのクラスの名前を取得するようにしたいです。 このようなプログラムをつくるにはどうすればいいのでしょうか?

  • Javaアプリケーションをフリーソフトのようにするには

    Javaでアプリケーションを作成したのですが、アプリケーションを実行するにはコマンドプロンプトから  javac ***.java とコンパイルして、( ***.java はファイル名 )  java *** としてアプリケーションを実行しますが、ウェブ上に転がっているフリーソフトのようにダウンロードして解凍するとインストーラがあってインストーラを起動することによって既存のプログラムに追加し、コマンドからアプリケーションを起動したり、すべてのプログラムから選択することで起動したりというように作成したJavaアプリケーションにインストーラを付与する方法はあるんでしょうか? フリーソフトの中にはJavaで作成されたアプリケーションもありそうな気がするので、作成できるのだと思うのですが、ネットで探してもそのような記事は見つからず困っています。フリーソフトとして公開してみたいので...。知っている方教えてください。

    • ベストアンサー
    • Java
  • javaの制御

    javaの制御について 1.バックと同じ画像をまず表示させる 2.何かアクションをしたらその画像を他のに変える 3.他の画像に変わったときにクリックするとリンクに飛ぶ こんなことをやりたいんですが、、、 ちなみに2まではできているんですが、 リンクが始めからついちゃってるから 1の画像クリックしても飛んでしまいます。 制御方法、または情報(関連情報でもかまいません) をお持ちの方がおられましたら 教えていただけると幸いです。

  • Javaの現状について教えてください

    こんにちは。普段主にC++を使っていて、趣味と実益を兼ねて少しずつJavaを勉強してきた者です。 時間に少し余裕ができてきたのでテキスト整形ソフトをJavaで作ってみようと思っているのですが、基本的なところでいくつか疑問があります。 ご教授いただければ幸いです。 1・現在日本ではJavaは主にサーブレット開発で使われており、アプリケーションソフトに使われることはあまりないそうですが、それは実際そうですか? また、やはり速度面からいって今後もそのような状況が続きそうですか? Javaでアプリケーションを作ることはあまり意味がないことでしょうか。 2・JavaのGUI用のクラスライブラリにはSwing(JFC)と、マイクロソフトが開発したVJ用のクラスライブラリ(名前を忘れました)があるようですが、(あえて使うならば)これらはどちらが主に使われているのでしょうか? またVJはすでに製造中止?になっているそうなのでMSのクラスライブラリは覚えても無駄でしょう? 3・VJで本に載っていた(「Java実例プログラムによるデザインパターン入門」)JFCのクラスを使おうとしたのですが、どうもインストールされていないようです。VJでSwingを使うにはどうしたらいいでしょうか? 以上、とりあえず気になっている点をあげてみました。 他にもお気づきの点があればぜひご指摘下さい。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • java 実行できない

    javaで public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World!"); } } のようなプログラムをかいて、コンパイルして、実行しようとすると エラー: メイン・メソッドがクラスStringで見つかりません。次のようにメイン・メソッドを定義してください。 public static void main(String[] args) またはJavaFXアプリケーション・クラスはjavafx.application.Applicationを拡張する必要がありま というエラーがでます。コンパイルはできます。jdkは1.8.0_25を使っています。

  • javaのインターフェースと動的制御について教えてください!

    javaのインタフェースと動的制御についての課題を出されたのですが、以下のようなものです ・起動させるクラス名はmain実行時にコマンドライン引数として渡す ・動的に呼び出されるクラスは2つ作成し、クラスその(1)現在の時間、 クラスその(2)クラス名を出力させる。 ・想定している構成として、メインクラス、インターフェース、動的ク ラス二つの計4クラスとする。 という問題で今のところ作成したクラスが以下のようなものです、インターフェースクラスと動的クラス二つはなんとかできて、このまま変化させずに置きたいです。メインクラスの見当がつきません、できたらメインクラスのアドバイスをどうかお願いします。ちなみに私はエクリプスをしようしています。 インターフェースクラス package Kadai1221; public interface Interface001 { void kurasu(); } 動的クラス二つ 一つめ package Kadai1221; import java.util.Calendar; public class Jikan implements Interface001 { public void kurasu() { Calendar now = Calendar.getInstance(); int zikan; int hun; int byou; zikan = now.get(Calendar.HOUR_OF_DAY); hun = now.get(Calendar.MINUTE); byou = now.get(Calendar.SECOND); System.out.println(zikan + "時" + hun + "分"          + byou + "秒"); } } 二つ目 package Kadai1221; public class Kurasumei implements Interface001 { public void kurasu() { System.out.println("Kurasumei"); } } メインクラス package Kadai1221; public class Kadaimain { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ } } どうかよろしくお願いします。

  • JAVAで実行エラー。

    下記のエラーメッセージが出ました。 どうしてでしょうか? コンパイラーは通りました。 実行でエラ-になりました。 度々すみません。 解説のほど、宜しくお願い申し上げます。 C:\JAVA>java Monster エラー: メイン・メソッドがクラスMonsterで見つかりません。次のようにメイン・メソッドを定義してください。 public static void main(String[] args) またはJavaFXアプリケーション・クラスはjavafx.application.Applicationを拡張する必要があります class Monster { int power; void setPower(int p) { power = p; } void walk() { System.out.println("てくてく・・・"); power--; } }

    • ベストアンサー
    • Java
  • Java勉強について

    Javaについて勉強しているものですが、 Visual Studioみたいなにコードを書いてる時にクラスやメソッド等の関数を 立候補を出してくれる開発ソフトはないでしょうか?

専門家に質問してみよう