0

背景/例(ただし、質問はおそらくこれよりも広範です):

Google AppEngine サーバーにアクセスする Java アプリケーションを作成しようとしています。このためのプロジェクトを設定するために、ここで受け入れられた回答で概説されている手順に従いました。

AppEngine データベースを使用する Java アプリケーションの開発

Java クライアント アプリケーション (つまり、AppEngine サーバー コードではない) で -requestを実行しようとしているときに問題が発生しましたHttpURLConnectionが、Google の AppEngine ライブラリは、この接続の Java バージョンを独自のものに置き換えたようですurlFetch()-実装。これにより、「API パッケージ 'urlfetch' または呼び出し 'Fetch()' が見つかりませんでした。」というエラーが表示されます。

実際の質問:

必要なクラス実装を見つけるために Java がライブラリを調べる順序を決定するものは何ですか? 実際の JRE 関数が必要なサードパーティ ライブラリよりも優先されるように、この順序を (特に Eclipse で) 変更する方法はありますか。または、上記の例の実装でUrl、ライブラリの順序を指定しても解決できない特別なことが起こっているのでしょうか?

アップデート:

私が見ていた問題は、クラスがロードされた順序とは何の関係もないことがわかりました。AppEngine サーバー コードは、setContentHandlerFactory(...)を明示的に呼び出して、ライブラリの読み込み時ではなく実行時に独自のハンドラーを登録します (この特定の問題の修正については、こちらを参照してください)。したがって、私の「実際の質問」はまだ有効かもしれませんが、実際には、それが重要なシナリオにまだ遭遇していません...

4

2 に答える 2

1

Eclipse 内で、クラスパスの順序を調整できます。プロジェクトを右クリックし、[プロパティ]、[Java ビルド パス] の順に選択し、[注文とエクスポート] タブをクリックします。ただし、もちろん、Eclipse の外部で実行する場合、これはプログラムには影響しません。

于 2013-08-02T15:53:04.660 に答える