2011-09-15 7 views
0

私はサーバーアプリケーションをフォークされたJavaタスクとして起動するとうまく動作しますが、System.in()入力をうんざりしますが、Javaタスクを未処理として実行しようとすると、問題が発生します。システム入力を保持する)、クラスのいくつか(特にjavax.sslパッケージ)を見つけることができません。フォークされていないANT Javaタスクに、いくつかの必須クラスが表示されないのはなぜですか?

これは、includeJavaRuntime = "true"などのタスク引数を含める必要がある問題ですか?このエラーは、クラスローダーがforkされていないときには異なることを示しています。

答えて

0

はい、クラスローダーの問題です。ほとんどの場合、必要なjarファイルはシステムクラスパスから抜けています。

実際にJavaプロセスを別のスレッドで実行し、指定したクラスパスを使用して実行する方が安全です。

<path id="classpath.id"> 
     <fileset ... 
</path> 

<java fork="true" classpathref="classpath.id" .... 
+0

私は100%がクラスパスにあり、100%はあなたが上に示唆していることをやっても動作しないと確信しています。私は問題がより深いクラスローダーの問題だと思う... Antのカスタムクラスローダーによるシステムポリシーの問題の可能性が高い。まだ理解しようとしています。私はBeanshellsクラスローダーを使用しようとすると同様の問題が発生しましたが、別のエラーメッセージが表示されました。 – djangofan

関連する問題