---------------- sample.Main -----------------
package sample;
public class Main {
public static void main(String[] args) {
for (int i = 0 ; i < args.length ; i++) {
System.out.println("args[" + i + "] = " + args[i]);
}
System.out.println("System.getProperty(\"sample.property\") = " + System.getProperty("sample.property"));
}
}
----------------------------------------------
----------------- run.bat --------------------
java -cp . sample.Main %*
----------------------------------------------
---------------- ファイル構成 ----------------
currentDir
+-run.bat
+-sample
+-Main.class
----------------------------------------------
---------------- 実行と結果 ------------------
C:\>run -Dsample.property=propertyValue
C:\>java -cp . sample.Main -Dsample.property=propertyValue
args[0] = -Dsample.property=propertyValue
System.getProperty("sample.property") = null
-----------------------------------------------
------------------ 期待した結果 --------------
C:\>run -Dsample.property=propertyValue
C:\>java -cp . sample.Main -Dsample.property=propertyValue
System.getProperty("sample.property") = propertyValue
-----------------------------------------------
複雑なことは行わず(正攻法にて)
期待した結果を得るには、どのようにすればいいのでしょうか・・。
No.1ベストアンサー
- 回答日時:
run.batの中身を
----------------------------------------------------------------------
java %* -cp . sample.Main
----------------------------------------------------------------------
と順番を入れ替えてみては如何でしょう。
この回答への補足
あ、そうですよね、質問の内容だと、それでも事足りてしまいますよね・・。
ごめんなさい、補足しておきますと、通常の引数はそのまま使えるように保ちつつ、システムプロパティもがっつり設定したいんです。
でも、どうしても無理な時は、Yanchさんのおっしゃるように通常引数までシステムプロパティにするしかないのかな・・。
No.2
- 回答日時:
>ごめんなさい、補足しておきますと、通常の引数はそのまま使えるように保ちつつ、システムプロパティもがっつり設定したいんです。
でしたら、もう一工夫して、
run.batの中身を
----------------------------------------------------------------------
java -Dsample.property=propertyValue -cp . sample.Main %*
----------------------------------------------------------------------
とか、
run.batの中身を
----------------------------------------------------------------------
set OPT=-Dsample.property=propertyValue
java %OPT% -cp . sample.Main %*
----------------------------------------------------------------------
のような感じでしょうか。
うーん、なんだか正攻法とは言えない気がしますが、
現状(今の自分の問題)だとそれで事足りてしまうんですよね・・。
とりあえずはそんな感じでいこうかなと思います。
*必要になったら
args = obtainSystemProperties(args);
みたいなかんじでシステムプロパティを解析/設定しようと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- FX・外国為替取引 mql4のコンパイルエラー箇所の修正お願いします。 1 2023/03/15 16:14
- Java eclipse実行ができない 2 2022/07/27 04:47
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- UNIX・Linux bashの変数でブランクがあるかチェックする方法教えて下さい。 3 2023/04/06 16:09
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java java final 1 2022/06/10 22:49
- オープンソース Try Kotlinで readLine()を使うには 1 2023/03/27 21:06
- Windows 10 VirtualBox 7のゲストOSでの物理HDDパーティションのマウント方法 2 2023/05/04 13:01
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数を動的に利用するには?
-
JSP/Servletのパラメータの受け...
-
中カッコ{}だけの記述について
-
Socketの接続のタイムアウトを...
-
Javaでlog4jを使ってログ出力を...
-
GetterとSetterをやったのに。
-
元旦からの日数を入力して、何...
-
プログラミングの問題です。大...
-
JavaのEnum型について
-
javaに関する質問です
-
privateなフィールドは継承され...
-
所持金の計算式とその表示の仕方
-
複素数の計算するクラスを足せ...
-
javaでコンパイルが出来ない
-
NoSuchMethodErrorが解決できま...
-
C言語のポインターに関する警告
-
System.err. printlnとSystem.o...
-
JSPやサーブレットでSystem.out...
-
ダブルクォーテーションのrepla...
-
「続行するには何かキーを押し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数を動的に利用するには?
-
中カッコ{}だけの記述について
-
プログラミングの問題です。大...
-
Socketの接続のタイムアウトを...
-
System.exit()の値を取得したい
-
コンストラクタの引数の中のnew?
-
インタフェイス実装と抽象クラ...
-
JSP/Servletのパラメータの受け...
-
NoSuchMethodErrorが解決できま...
-
Javaでlog4jを使ってログ出力を...
-
ArrayList でスタックを
-
コマンドライン引数の*(アフ...
-
randomで
-
javaで特定の文字列から特定の...
-
Javaで日本語の出力が文字化けする
-
【初心者です】javaで平均値を...
-
Java プログラム public class ...
-
javaのプログラミングで作るRPG...
-
クラスを使った電卓のプログラム
-
じゃんけん プログラミング
おすすめ情報