Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

Javaのコンソールアプリを実行するとき画面を消すオプション

Javaのコンソールアプリをコマンドラインから実行する時入力実行と同時に、MS-DOSの画面そのものを消すためのオプションを知りたいのでお願いします。
つまり、
main(...)があるクラスファイルをTest.classとします。
コマンドラインからの実行は、
>>java Test
となります。入力キイを押した瞬間MS-DOSの画面本体が消えて、消えたまま実行内容がすべて終了するようにしたいのです。 
>>java または >> java -help
と入力すると java のオプションが表示されますが、それらの中にはないようです。
例えば、
>> java -hide Test
のようなオプションがないかなと探しています。
よろしくおねがいします。

17

回答

8547

閲覧

17件の回答

評価

0

start java Test
とかじゃだめ?

評価

0

というか、
javaw Test
でもいいような・・・

評価

0

空白さん回答ありがとうございます。 でもまだ十分ではありません。

start java Test
は、Test が実行されるが黒い画面が残ったままとなるからだめ。

start /min java Test
は、Test が実行されて、黒い画面が一瞬現れて、最小化して、MS-DOS が終了しないままとなるからだめ。

javaw Test
は、Test が実行されて、黒い画面に文字は表示されないが、黒い画面が一瞬現れるのでだめ。

希望は、java Test の入力キイを押した瞬間に黒い画面が消えて、その裏で java Test が実行されて、実行が終了すると同時にMS-DOS も終了していること、です。


コマンドプロンプトの本なども調査中ですが、Javaのドキュメントのどのあたりを調べたらよいかなども教えていただければありがたいです。

評価

0

batファイルで怪傑
javaw→exit

評価

0

あららさんどうもありがとうございました。
バッチファイルですか! 名前はきいたことがあるのですが経験がないのでどうすればよいか今のところわかりません。 でも可能性がありそうなのでこれから調べて極簡単なバッチファイルを作って試してみることから始めてみようと思います。私の場合、すこし時間がかかりそうです。

評価

0

バッチファイルにコマンドを書いて実行しても
コマンドラインから実行するのと結局同じで解決しませんでした。

以下では、最後にMS-DOSは確実に閉じるのはよいのですが、Test を実行開始の段階で黒い画面が一瞬現れるので結局ダメでした。

この一瞬現れる黒い画面なしに Testを実行したいのです。

java Test
exit

javaw Test
exit
(こちらはTestが一部実行されない場合もありまし。)

探しているものは何か?

一瞬現れる黒い画面なしに Testを実行できるための、

1. java -hide Test での -hide のような java 命令のオプション
2. Windows のコマンドとそのオプション
3. java のメソッド

ということになりそうなのですが、あるでしょうか?
無理でしょうか?あってもよいと思うのですが・・・。

どうかよろしくお願いします。




 

評価

0

なんでそんなものが欲しいのかわからない。いやならjarファイルにして、jarをダブルクリックしてもらえばいいじゃないか。

評価

0

コンソールの振る舞いなんて、Javaの管轄じゃないじゃん。
Microsoftに聞けば?

評価

0

1. なぜ必要かの説明は話が長くなるので省略します。

2. 拡張子".jar"に関連付けられているのはjavaw.exeです。 javaw.exeはウィンドウアプリ用ランチャで、コンソールI/Oを用意しません。  by FE
なので、わたしのコンソールアプリには*.jarファイルにしてダブルクリック起動は不適なはずです。
3. その他 省略

4. 調べる方法、コマンドやオプションやメソッド、 発想を変えた良い方法を教えていただければ大変有り難いのでどうぞ宜しくお願いします。 


評価

0

1.→ 長くて面倒ならあきらめたら。
2.→ コンソールを閉じたり開いたりしたいなら自作すれば?
3. → 意味不明
4. → あなたの便利屋ではありません。

とよんでておもった。

評価

0

> 1. なぜ必要かの説明は話が長くなるので省略します。

まじですか?
その理由がわからなければ、
4.の、
> 発想を変えた良い方法
なんて、出てこないと思うが。

発想を変えたよい方法を出したとしても、「必要な理由」にうまく該当しないために、「それは駄目です」って言われるかもしれない。
そんな無駄なやり取りは省きたいと思うのは俺だけ?

なお、いくつか方法・回答は思いついたけど、説明が長くなるので省略します。

評価

0

2の意味がわからない。
コンソール要らないんでしょ?
だったらjarでいいじゃんか。
なぜ不適なはずと考えるんですか?

そもそも、なぜ必要か、本当にわからないんですよ。ただの見栄の問題だと思っていたのですが、説明が長くなるということでそう単純なものでも無いようですし。

ま、省略とか言ってる時点で駄目ですね。

評価

0

問題は十分伝わっていると思いますので、別の方があればお願いします。

評価

0

で、なんでjarだと駄目なんだよ、と。
それに、何が問題かはどうでもいいんだよ。
なぜ必要かは全然伝わって無いんだよ。

評価

0

Javaから、OS等システム側の動作をいじれるの?


VBからJavaを実行するようにしたら出来るんじゃね?
VBでDOSコマンドの実行も出来るし、しかもDOS窓表示しないようにする方法もあるし。
ほら、別の方法を出してやったぞ。
出してやったんだから、拒否なんかせずにこの方法でやれよ。

評価

0

Javaで制御できるのは、Javaで実行されるものの中だけです。
コマンドプロンプトはJavaの外の世界なので、制御できません。
しかもコマンドプロンプトはOSに依存したものです。
非依存を念頭に考えられているJavaでは、基本的に考えないことです。

評価

0

mio さんありがとうございます。  わかりました。

方針を転換して、C/C++で、

1. 別プロセスで表示なしで実行する。
2. JNIを使ってみる。(これも別プロセスのようですが)

などで、なんとか実現するようにがんばってみます。

JNIは過去に何度かやってみたのですが、JNI_CreateJavaVM(...); から-1が返ってくるだけでjvmを起動できたことがないので心配です。 資料はWeb上にたくさんあるのですが・・・。

有難うございました。 これで終わりにします。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。