こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

javaからexeの起動、値渡し(?)について。

1. 短縮したソースで申し訳ないのですが、JavaからC++で作成したexeファイルの、
int secに、javaでexe起動時に任意の数値を渡したいのですが、
何か良い方法はありますでしょうか?

2. またJavaで、外部ファイルを起動した時に、例えばFirefox等の場合、
自身の設定や、お気に入りが全くない状態で起動するのは何故でしょうか?

回答いただければと思います。どうぞよろしくお願いいたします。


[java]
ProcessBuilder pb=new ProcessBuilder("C:\\Users\\Super\\Desktop\\cplus.exe", "30");
try {
Process p=pb.start();
int ret=p.waitFor();
System.out.println("process exited with value : " + ret);
} catch (IOException ioe) {
} catch (InterruptedException inte) {
}

[C++ win32api]
#include <windows.h>

int main() {

int sec=0;
HANDLE hTimer;
BOOL ret=FALSE;
DWORD err=0;

//以下はタイマー作成
}

投稿日時 - 2012-07-11 18:35:43

QNo.7584662

すぐに回答ほしいです

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

ああっ。投稿した後で気がついた。Java内から起動するプロセスに値を渡すのですね。勘違いしていました。


ProcessBuilderの際に引数にパラメータを指定して、C側で受け取るようにはできないのでしょうか。C側でmain(int argc, char *argv[])として受け取るのではまずいんですか?

投稿日時 - 2012-07-11 20:13:42

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

java.exeは、普通にパラメータを渡せますよ。

java HogeClass 100 200 300

例えばこんな具合にしてHogeClassを起動した場合、main(String[] args)の引数argsには、{"100","200","300"}といった配列が収められます。これを取り出して処理すればいいだけです。

投稿日時 - 2012-07-11 19:56:29

お礼

回答ありがとうございます。たしかに私の説明が不足している感があり、
新しい投稿の方を早速試してみます。

投稿日時 - 2012-07-12 09:02:24

あなたにオススメの質問