簡體   English   中英

修復Java代碼中的JRE錯誤並重新編譯應用程序

[英]Fixing JRE error in Java code and recompiling application

我嘗試在Windows 7上運行某些依賴於舊JRE版本的舊實用程序。

我安裝了最后一個Java Runtime Environment 1.7.0_79 當我啟動應用程序時,出現錯誤:

“ Sivus需要運行JRE 1.4或更高版本。您可以從... etc下載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一起使用?

我正在做這樣的補丁的一個例子。

  1. 修復代碼-您可以在checkJavaVersion中添加1.6、1.7、1.8或在main方法中刪除此檢查。
  2. 將固定的Java文件放在與包匹配的文件夾中
  3. 編譯java文件,例如:

    調用“ C:\\ Program Files(x86)\\ Java \\ jdk1.7.0_79 \\ bin \\ javac.exe” C:\\ test \\ mypackage \\ MyClass.java -cp C:\\ test \\ My.jar-源1.4-目標1.4

  4. 獲取編譯的類文件並替換舊文件(首先備份它)

首先,我建議不要使用“來源”令人懷疑的舊工具。 特別是,不作為安全掃描程序。 當然,您可以找到比此工具更新,更受支持的工具...

如果您希望繼續(並冒險),那么一種方法是按照@Rustam的建議修改該類,重新編譯並重建JAR文件。

另一種方法是使用main方法創建一個簡單的包裝器類,該main方法調用System.setProperty來調整"java.version"屬性的值,然后再調用實際的main方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM