2

古いJREバージョンに依存する古いユーティリティをWindows 7で実行してみました。

最後にJava Runtime Environment 1.7.0_79インストールしました。アプリケーションを起動しようとすると、次のエラーが発生しました。

「Sivus を実行するには JRE 1.4 以降が必要です。JRE は ... などからダウンロードできます」

これまたはその性質のものを解決/修正するための回避策はありますか? SFX ZIP アーカイブに圧縮されたプログラムのメインの実行可能ファイルを抽出し、Java ファイルを見つけて、チェックを行いました。コードがあります:

  public static boolean checkJavaVersion(){
    boolean ok = false;
    String version = System.getProperty("java.version");

    if (version.indexOf("1.1") > -1) {
      ok = false;
    }
    else if (version.indexOf("1.2") > -1) {
      ok = false;
    }
    else if (version.indexOf("1.3") > -1) {
      ok = false;
    }
    else if (version.indexOf("1.4") > -1) {
      ok = true;
    }
    else if (version.indexOf("1.5") > -1) {
      ok = true;
    }

    return ok;
  }
  public static void main(String[] args) {
    boolean DEBUG = false;
    try {


    // check if JRE is over 1.4
    if (checkJavaVersion() == false){
      JOptionPane.showMessageDialog(
          null,
          "SiVuS requires JRE 1.4 (or later) to run.\n"
          +"You can download the latest JRE from java.sun.com",
          "Java Run Time Environment Error",
          JOptionPane.WARNING_MESSAGE);
      System.exit(1);
    }

この問題を修正してアプリケーションを再コンパイルするにはどうすればよいですか? JRE 1.4 に依存するアプリケーションは、現在の JRE で動作しますか?

4

2 に答える 2

0

まず第一に、「来歴」が疑わしい古いツールは使用しないことをお勧めします。特に、セキュリティスキャナーとしてではありません。確かに、これよりも新しく、より適切にサポートされているツールを見つけることができます...

続行したい (そしてリスクを冒したい) 場合は、@Rustam が提案するように、そのクラスを変更し、JAR ファイルを再コンパイルして再構築する方法があります。

もう 1 つの方法は、プロパティの値を微調整するために呼び出され、次に実際のメソッドmainを呼び出すメソッドを持つ単純なラッパー クラスを作成することです。System.setProperty"java.version"main

于 2015-10-19T12:51:31.417 に答える