2006/12/21

今日の忘れ物

今日の講演のために、Java SE 6 の機能をあらためてリストアップしていったんですが、なにか忘れたような気がしてなりませんでした。それを家に帰ってから思い出しました。

CLASSPATH にアスタリスクが使えるといっていたのは、どこにいってしまったんでしょう?

そうです、JAR ファイルの指定にアスタリスクが使えるはずだったのですが...

カレントディレクトリに JAR ファイルが複数ある場合、java -cp ./* のように記述できると。でも、今はできません。

アスタリスクはシェルが処理するはずなので、それほど難しいことではないような気がするのですが、やっぱりダメですか?

 

<<追記>>

アスタリスク使えました ^^;;

すいません、いいかげんなことを書いてしまって。

ただし、シェルに食われないような工夫が必要です。次のように書けば大丈夫のようです。

>java -cp ".\*" Foo
 
OR
 
>java -cp .\*; Foo      // Windows の場合
> java -cp ./*: Foo     // Unix 系の場合

ご指摘いただいた syo さん、ありがとうございました

3 件のコメント:

  1. http://java.sun.com/javase/6/docs/technotes/tools/index.html
    Docのとおりに動かない場合は、ぜひバグ報告を...。(^^;;;

    返信削除
  2. いい加減なことを書いてしまってすいません。Windows でワイルドカードを使う方法が分かりました。

    java -cp ".\*" Foo

    のようにワイルドカードをダブルクォーテーションマークで囲めばいいのでした。

    "" で囲めばシェルが展開しないのわけですね。ドキュメントにもここまで書いてほしかった... ^^;;

    返信削除
  3. 私もはまってしまいました(WindowsXP)。いろいろと試してみると、

    java -cp ./*; Hoge

    のような感じで、*の後ろにセミコロンをつけると上手く動作したのでそれで対応していました。(^^;

    返信削除