ホームページ >Java >&#&チュートリアル >Java エラー: Java11 新しいセキュリティ オプション エラー、対処方法と回避方法

Java エラー: Java11 新しいセキュリティ オプション エラー、対処方法と回避方法

WBOY
WBOYオリジナル
2023-06-25 09:54:351529ブラウズ

Java は、アプリケーションの開発に広く使用されているプログラミング言語です。 Java 11 の導入により、新しいセキュリティ オプションが導入されました。ただし、これらの新しいオプションによっていくつかの問題が発生する可能性もあります。この記事では、Java11 の新しいセキュリティ オプション エラーと、それらに対処して回避する方法について説明します。

新しいセキュリティ オプション

Java11 の新しいセキュリティ オプションには、主に次の 3 つの側面が含まれます:

  1. アプリケーション クラス ローダー

Java11新しいアプリケーション クラス ローダーが導入され、アプリケーション クラス ローダーの動作を制御するためのいくつかの新しいオプションが導入されています。これらのオプションには主に次のものが含まれます。

  • Xshare:off オプションは、共有クラス キャッシュ機能をオフにするために使用されます。
  • --class-path オプションは、アプリケーションがロードする必要があるクラスパスを指定するために使用されます。
  • --module-path オプションは、アプリケーションがロードする必要があるモジュール パスを指定するために使用されます。
  1. デフォルトのアルゴリズムを無効にする

SHA-1 や MD5 などの一部の安全でない暗号化アルゴリズムは、Java11 ではデフォルトで無効になっています。これらのアルゴリズムを有効にするには、特別なオプションが必要です。これらのオプションは次のとおりです。

  • --add-exports java.base/jdk.internal.crypto=ALL-UNNAMED オプションは、名前のないモジュールに暗号化機能を公開します。
  • --add-opens java.base/java.security=ALL-UNNAMED オプションは、名前のないモジュールに対して Java セキュリティ ディレクトリを開くために使用されます。
  1. コンパイラの制限

Java11 では、コンパイラの新しい制限もいくつか導入されています。これらの制限は主に次の状況に適用されます。

  • sun.misc パッケージ内のクラスへのアクセスは禁止されています。
  • 特定の Java SE API の使用は禁止されています。
  • 未公開の API の使用は禁止されています。

Java11 の新しいセキュリティ オプション エラー

Java11 にアップグレードすると、アプリケーション開発者は次のエラーに遭遇する可能性があります:

  1. java.lang.IllegalAccessException 例外

リフレクションを通じて sun.misc.Unsafe クラスにアクセスすると、java.lang.IllegalAccessException 例外が発生することがあります。これは、Java11 では sun.misc パッケージ内のクラスへのアクセスが許可されなくなったためです。

解決策: Unsafe クラスを安全なメソッドに置き換えます。たとえば、java.nio.Bits または java.lang.invoke.VarHandle を使用します。

  1. java.lang.NoClassDefFoundError 例外

java.lang.NoClassDefFoundError 例外は、アプリケーションがアプリケーション クラス ローダーを使用してクラスをロードするときに発生することがあります。これは通常、共有クラスのキャッシュをオフにする -Xshare:off オプションを有効にすることによって発生します。

回避策: 次のコマンド ライン オプションを使用して、共有クラス キャッシュを有効にします:

java -Xshare:auto -jar app.jar

  1. コンパイル エラー

アプリケーションが Java SE API または文書化されていない API を使用しようとすると、コンパイル エラーが発生する可能性があります。

解決策: Java 標準ライブラリの代替 API を使用するか、自分で機能を実装します。同時に、未承認の API の使用を避けてください。

Java11 の新しいセキュリティ オプションのエラーを回避する

上記の解決策に加えて、Java11 の新しいセキュリティ オプションのエラーを回避するために次の方法があります。

  1. アプリケーション

Java 11 の新しいセキュリティ オプションに適応するために、可能な限りアプリケーションをアップグレードしてください。アプリケーションが古い API を使用している場合、アプリケーションではさらに多くの問題が発生します。

  1. 新しいセキュリティ オプションを理解する

Java11 の新しいセキュリティ オプションを理解し、それらを正しく使用する方法を学びます。

  1. 新しいオプションを使用する

Java 11 の新しいオプションを使用して、アプリケーションとクラス ローダーの動作を制御します。

  1. アプリケーションのテスト

アプリケーションをテストして、新しい Java11 環境で実行され、新しいセキュリティ オプションが正しく処理されることを確認します。

結論

Java11 の新しいセキュリティ オプションにより、Java アプリケーションの安全性が高まります。ただし、これらのオプションによっていくつかの問題が発生する可能性もあります。これらのオプションを正しく理解して使用し、アプリケーションをテストすることは、これらの問題を回避するのに役立ちます。問題が発生した場合は、アプリケーションをスムーズに実行できるように、タイムリーに問題を解決するための措置を講じる必要があります。

以上がJava エラー: Java11 新しいセキュリティ オプション エラー、対処方法と回避方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。