No.7ベストアンサー
- 回答日時:
ns18さん>私の持っている本には載っていませんでしたし。
。。むぅ、そうですか、ありませんでしたか。
Java2SDKをインストールしたときにドキュメントも一緒にインストールされますが、その中に引数について書かれたドキュメントも含まれています。
SUNのサイトだと以下にあります。
http://java.sun.com/products/jdk/1.2/ja/docs/ja/ …
http://java.sun.com/products/jdk/1.2/ja/docs/ja/ …
↓トップからだと見つけにくいかもしれませんが。
http://java.sun.com/products/jdk/1.2/ja/
↑なお、「1.2」のところはJavaのバージョンなので、「1.3」とか「1.4」とかすれば、それぞれのバージョンのドキュメントが見れます。
Harry_さん>Windowsでやってもちゃんと展開されてしまいました。
大概のOSでは、ワイルドカードを使えば、勝手に展開してくれます。
"*"を使えば任意の文字列になりますし、"?"なら任意の一文字という具合にです。
ただ、ファイルが存在しない場合には展開できないので、単なる"*.java"という文字列として渡ります。
いずれにせよ、引数で渡ってきたファイルが存在するか存在しないかは、自分でチェックして判断しなければなりません。
例えば、ファイルとしては存在していない"nothing.java"という文字列を引数で指定した場合、引数で渡されたファイル名と思われる文字列に該当するファイルが実際に存在するか否かは、Fileクラスを使ってチェックしなければなりません。
その文字列に該当するファイルが存在しないのであれば、その引数は単なる文字列だった、ということになります。
参考まで。
詳しい説明ありがとうございます。
ワイルドカードでファイルやディレクトリがヒットしなかった場合は、
指定した文字列がそのまま渡されるんですね。。
それだとその文字列を使おうとしても確かに存在しないファイルなので
エラーとなりますね。
i_am_aliveさんのおっしゃるようにFileクラスで存在の有無をチェック
する処理をしなくては。。。。
No.8
- 回答日時:
もう一度確認してみました。
前回は、寝ぼけていたようです。ワイルドカードキャラクターは展開されます。
# 誰がやってくれているのだろう? VM なんだろうけど
# 間違いを書いた、という意味で自信無しにチェックをつけてます (^^;
余計なお世話かもしれないけど
i_am_alive> 大概のOSでは、ワイルドカードを使えば、勝手に展開してくれます。
OS が展開するんじゃないですよ。unix の場合は、シェルが展開してくれるの。
試しに、シェルを経由しないでプロセスを起動してごらんなさい(例えば exec系を
使って)。* が展開されないことが分かるでしょう。
MS-DOS は、似非 unix なので、シェルではなくて、コマンドそれぞれが展開して
ました。それでは不便だ、ということで特別なオブジェクト (varargs.obj だったか)
をリンクすると、main() が呼ばれる前にスタートアップルーチンがファイル名
展開をしてくれる仕組みがあったりしました(C 言語の場合)。
# それとも、ns18 さんにあわせた説明をしているだけですか?
# であれば、失礼 m(_ _)m
#いつのまにかこんなにレスしてくれてたんですね。
#返事が遅れて申し訳ありません。
私はWindowsだの、unixだのよくわからないので、今はWindowsで作って
動作確認していますが、unixでも確認しなくてはいけませんね。
なにはともあれ、a-kuma他、皆さん回答ありがとうございました。
No.6
- 回答日時:
Harry_ さんの環境はどうなんでしょうね。
私も、実際に動かしてみて確認したのですが、ダブルクォーテーションでくくらなくても展開されませんでした。
私が確認したのは J2SE 1.4.0 で Windows2000 のコマンドプロンプトです。
# 変なの
No.5
- 回答日時:
> a-kuma さん。
いや、それがですね、
Windowsでやってもちゃんと展開されてしまいました。
マッチするファイルがカレントにひとつもないと、
展開されずに *.java がそのまま渡されたので、勘違いして
下の回答を書いたのですが。
ちなみに、本当に *.java を渡したいときは、"*.java" って
ダブルクォーテーションでくくるとOKでした。
なるほど。""で囲むとスペースや*,?などがあっても、
1つの文字列としてコマンドラインで渡されるのですね!!
参考になりました。ありがとうございます。
No.4
- 回答日時:
多分、ns18 さんは、プロンプトを '>' で書いているので Windows な人だと
思いますので、No.2 の Harry_ さんが書いてあるような結果になります。
unix だと、それを実行しているシェルが *.java を実際のファイル名に展開して
くれるので、引数に実際のファイル名として渡ってきます。
その場合には、File#list(FilenameFilter) を使って、自分で探す必要があります。
No.2
- 回答日時:
「*.java」という文字列自体が args[0] に格納されるだけですが、
それでよかったのですか?
「*.java」にマッチするファイル名のリストを受け取れるわけではないですよ。
No.1
- 回答日時:
可能でしょうかも何も、main(String[] args)とかやれば、argsに引数として渡りますよ。
Java入門書でも最初の方に出てくると思いましたが。
↓例
public class ArgTest
{
public static void main(String[] args)
throws Exception
{
for ( int i = 0 ; i < args.length ; i++ ) {
System.out.println(args[i]);
}
}
}
こんな簡単にできるとは・・・
何しろ初心者なもので、知りませんでした。
私の持っている本には載っていませんでしたし。。。
とにかくありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- C言語・C++・C# 至急お願いします。C言語で.imgのファイルを読み込んで1バイトづつ出力するプログラムを作りたいので 3 2023/01/16 22:49
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- UNIX・Linux ubuntuのサーバー(virtual box)が、再起動するとデータが消えてしまいます。 4 2022/04/27 21:29
- Java マイクラjavaでForgeを入れたいのですが、インストールした.jarファイルが展開されてしまい中 1 2023/07/28 22:30
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 15:14
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- Java Java 年数計算 3 2023/01/28 10:52
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Eclipse・プロジェクトで、フォ...
-
SVFの設定について:クラスパス...
-
javaクラスファイルをEclipseで...
-
JADで*.jarごとデコンパイルす...
-
classファイルについて
-
Eclipse「リフレッシュ」と「ク...
-
eclipse でclassesフォルダーが...
-
earファイルを展開する方法
-
「メイン・マニフェスト属性が...
-
java.io.Fileクラスは絶対パス...
-
java クラスファイルとソースコ...
-
”書きこみできません”とエラー...
-
「削除するか、クラスパスの正...
-
Jarコマンドでマニフェストファ...
-
【Eclipse】パッケージ・エクス...
-
EclipseでHTTP404エラーが出る。
-
JAVAでのexeファイル作成
-
jarsignerで署名の確認
-
JSP内で外部jsファイルを指定する
-
『ClassNotFoundException: org...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipse・プロジェクトで、フォ...
-
classファイルについて
-
javaクラスファイルをEclipseで...
-
SVFの設定について:クラスパス...
-
Eclipse「リフレッシュ」と「ク...
-
【Eclipse】パッケージ・エクス...
-
EclipseでHTTP404エラーが出る。
-
eclipse でclassesフォルダーが...
-
「削除するか、クラスパスの正...
-
earファイルを展開する方法
-
JADで*.jarごとデコンパイルす...
-
コンパイルをしようとするとエ...
-
java クラスファイルとソースコ...
-
プログラム実行の際に、「ソー...
-
javaでuseBeanエラーの解決方法
-
ResourceBundleクラスの使い方
-
【Eclipse】逆コンパイルでエラ...
-
Jarコマンドでマニフェストファ...
-
jdbcドライバのjarファイルにク...
-
「メイン・マニフェスト属性が...
おすすめ情報