2012-06-26 31 views
0

我正在爲一家變化緩慢的大公司工作。我們正在部署到一個Weblogic 10.2環境,並停留在java 1.5。這對於GWT庫來說並不是問題,但我們已經下載的gwt-maps-3.0.2b.gwt22.jar的下載版本是用1.6編譯器構建的。有誰知道1.5版本是否可用?如何獲得與java 1.5編譯器兼容的gwt-maps-3.0 api jar

唉,是否有可能用1.5編譯器重新編譯,因爲源代碼在jar裏?如果是這樣,有沒有人有一個構建腳本來做到這一點?

- 一些附加信息 我們正在嘗試升級一些現有的代碼,這是他們遇到的第一個錯誤。他們得到的編譯錯誤是: o錯誤:「類文件有錯誤的版本50.0,應該是49.0」

我使用以下方法檢查了jar文件。

  1. 內置下面的程序:

    進口java.io. *;

    公共類CheckVersion {
    公共靜態無效的主要(字串[] args)拋出IOException異常{
    對(INT I = 0;我< args.length; ++ⅰ){
    checkVersion(參數[I ]);
    }
    }

    private static void checkVersion(String classFileName) throws IOException { 
        DataInputStream in = new DataInputStream(new FileInputStream(classFileName)); 
    
        int magicNo = in.readInt(); 
        if (magicNo != 0xCAFEBABE) { 
         System.err.println(classFileName + " is not a valid class file name"); 
         return; 
        } 
        int minor = in.readUnsignedShort(); 
        int major = in.readUnsignedShort(); 
        System.out.println(classFileName + ": " + major +"." + minor); 
        in.close(); 
    } 
    

    }

  2. 提取的jar文件例如。 「罐子xvf命令GWT-maps3-0.2b.jar」

  3. 運行以下命令: 「找到-name的* .class | xargs的java的CheckVersion |切-d ':' -f2 |排序-u」
+0

一些附加信息: –

+0

3.8預發佈的重新編譯文件具有1.5或更高的編譯器要求,但也使用1.6編譯器構建。 –

+0

我能夠最終得到這個工作,但我不得不修改源刪除1.6註釋。盡我所能說,這並沒有引起任何問題。 –

回答

1

你必須從谷歌代碼下載來源:

http://code.google.com/p/gwt-google-maps-v3/source/checkout

- 不,這是行不通的。頁面上的所有版本都是使用1.6構建的

+0

我不好意思,我忘記了註釋格式。您可以嘗試使用codeweaver來更改字節碼,並使1.6 jar與1.5 VM兼容。我爲小型圖書館付錢,而且工作。我不知道Google Maps api是否會成功,我也不確定許可證是否允許。 – Arcadien

+0

這可能是最後的手段,但我會懷疑我們會在某個時候遇到bycode問題。另外,它不能只是對jar進行操作,它必須對jar中的每個類文件執行。 –

+0

它的retroweaver:http://retroweaver.sourceforge.net/。它希望適用於完整的jar內容。用法示例:http:// i-proving。COM/2008/11/18 /織我們的路背到Java-1-4 /。 。 – Arcadien

0

我能夠通過下載源代碼解決此問題,註釋1.5中的@Override註釋需要父級中的方法具有實現並重新編譯模塊。