レジストリキー「…」の値は「1.7」ですが、「1.6」が必要です。Java 1.7がインストールされ、レジストリがそれを指している
私の開発チームは最近、サーバーへの完全なアクセス権がないリモート開発環境に強制されました。切り替え前は、JRE 7とともにJava 1.7 x64で正常に動作していたJARがありました。新しいサーバーに移動すると、JARは問題なく動作していましたが、サーバー管理者の1人がJavaを古いバージョンに「更新」しましたバージョンを使用して、使用していたバージョンをアンインストールしました。理由を聞かないでください、わかりません。Java 1.7を再インストールし、JREとともに1.6をアンインストールしました。 実行時に次の問題が発生し、ビルドエラーは発生しません。 Registry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion' has value '1.7', but '1.6' is required. Error: could not find java.dll Error: could not find Java SE Runtime Environment. ラップトップで同じJARを問題なく実行しました。サーバーとラップトップの両方で、それぞれの%HOME%変数とシステムPATHにJDK 1.7とJRE 7があります。私はJRE 6を再インストールして、後でシステム環境のPATH変数に配置しましたが、結果は同じです。 レジストリを1.6に戻すように変更したところ、次のような結果になりました。これを調べたところ、複数のJavaがインストールされていることが原因であるように見えます(元の問題に戻ります)。 Exception in thread "main" java.lang.UnsupportedClassVersionError: ... : Unsupported major.minor version 51.0 私はさまざまなフォーラムを調べてきたので、皆さんの洞察に感謝しますが、正確に私の問題を抱えているようには見えません。また、これは私たちが使用している別のサーバーでも発生しています。ありがとう! 更新:JARを1.6または1.7に再コンパイルし、JDKを一致させることはできません。また、なぜ新しいバージョンのJavaが古いコンパイルバージョンを壊すのでしょうか。