0

組み込みデバイス用の DB を使用する Java アプリケーションを開発しています (CDC Foundation 1.1 および jsr 169 を使用)。jsr169 jar ファイルは、ブート ストラップ ローダーによってロードする必要があります (従来の -classpath オプションは使用しません)。

アプリケーションを実行するために、次のコマンドを使用しています

cvm -Xbootclasspath/a:/mylibs/jsr169.jar -cp $CLASSPATH -jar myapp.jar

しかし、オプション -Xbootclasspath が標準ではないことをどこかで読みましたが、それを使用するのは危険ですか? はいの場合、jsr169.jar をどこに置いて、ブート クラス ローダーによって直接ロードできるようにできますか?

100万人ありがとう

エリー

4

1 に答える 1

1

-Xbootclasspath は標準の Java オプションではないため、異なるベンダーの JVM ではサポートされていない可能性があります。

もう 1 つの危険性は、JRE の標準クラスをオーバーライドするために使用できるという事実にあります。アプリケーションがそのようなオーバーライドされたクラスに依存している場合、別の JVM または同じ JVM のより新しいバージョンで実行すると問題が発生する可能性があります。

Java SE のドキュメントによると、標準クラスをオーバーライドすると Java ライセンスが壊れます。Oracle のドキュメントによると、 「rt.jar 内のクラスをオーバーライドする目的でこのオプションを使用するアプリケーションは、Java 2 ランタイム環境のバイナリに違反するため、デプロイしないでください。コードライセンス。」. ただし、CVM のドキュメントにはそのような警告はありません。

CDC には JDBC クラスが含まれていないので、安全だと思います。

于 2011-11-29T12:48:36.180 に答える