- PR -

JDK1.5のjavadocでIllegalArgumentException

1
投稿者投稿内容
おかもと
大ベテラン
会議室デビュー日: 2003/06/08
投稿数: 182
投稿日時: 2006-08-20 23:39
WindowsXPでJDK1.5.0_07を使用しています。
javadoc.exe実行すると下記の通りエラーとなります。
コード:

C:\Temp>javadoc -sourcepath src test
パッケージ test のソースファイルを読み込んでいます...
Javadoc 情報を構築しています...
標準 Doclet バージョン 1.5.0_07
全パッケージとクラスの階層ツリーを作成しています...
test/\Test.html の生成
java.lang.IllegalArgumentException
at sun.net.www.ParseUtil.decode(ParseUtil.java:189)
at sun.misc.URLClassPath$FileLoader.<init>(URLClassPath.java:863)
at sun.misc.URLClassPath.run(URLClassPath.java:319)
at java.security.AccessController.doPrivileged(Native Method)
at sun.misc.URLClassPath.getLoader(URLClassPath.java:313)
at sun.misc.URLClassPath.getLoader(URLClassPath.java:290)
at sun.misc.URLClassPath.findResource(URLClassPath.java:141)



「test/¥Test.html」と言うところが怪しいと思うのですが、jdk1.4.2では
正常終了しますので、ソースやパッケージ階層などの問題は無いと思います。
他の皆さんはJDK1.5で問題無くJavadocが生成できているのでしょうか?
問題の解決方法をご存じの方がおられましたらご教示いただけると幸いです。

ps.「¥¥」は実際には一文字です。(投稿すると2文字になります)
コードの外は更にバックスラッシュに変換されてしまうので全角にしました。

#プレビューすると2文字になっていたのですが、実際に投稿すると1文字でした。

[ メッセージ編集済み 編集者: おかもと 編集日時 2006-08-20 23:40 ]
ToGo
常連さん
会議室デビュー日: 2002/03/16
投稿数: 46
投稿日時: 2006-08-21 23:07
J2SE 5.0 Update8ですが、WindowsXPでtestパッケージにMain.javaとTest.javaを置いて
javadocを実行すると、以下のような感じでエラーなく生成されます。
ちなみにディレクトリ構成は、
コード:
javadoc
   +--- src
   |     +--- test
   |            +--- Main.java
   |            +--- Test.java
   +--- test
         +--- Main.class
         +--- Test.class


以下の実行結果となりました。
コード:
javadoc$ javadoc -sourcepath src test
パッケージ test のソースファイルを読み込んでいます...
Javadoc 情報を構築しています...
標準 Doclet バージョン 1.5.0_08
全パッケージとクラスの階層ツリーを作成しています...
test/\\\\Main.html の生成
test/\\\\Test.html の生成
test/\\\\package-frame.html の生成
test/\\\\package-summary.html の生成
test/\\\\package-tree.html の生成
constant-values.html の生成
全パッケージとクラスのインデックスを作成しています...
overview-tree.html の生成
index-all.html の生成
deprecated-list.html の生成
全クラスのインデックスを作成しています...
allclasses-frame.html の生成
allclasses-noframe.html の生成
index.html の生成
help-doc.html の生成
stylesheet.css の生成


sun.net.www.ParseUtilクラスのdecodeメソッドがIllegalArgumentExceptionをスローする状況は、引数のURL文字列に%が含まれる(エスケープ文字がある)場合で何らかの問題があった場合です。CLASSPATHの指定やimportするクラスのファイル名にURL表記でエスケープされる文字を使用している可能性があると思われますが、いかがでしょうか?
おかもと
大ベテラン
会議室デビュー日: 2003/06/08
投稿数: 182
投稿日時: 2006-08-22 00:04
ご指摘通りCLASSPATHに"%"が含まれていたので除去しました。
どうもありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)