2016-05-16 45 views
0

我无法使用同步HashMap,因为它看起来像james apache服务器2.3.1不允许这样。编译apache james服务器时无法使用HashMap 2.3.1

这是错误消息我得到:

error: generics are not supported in -source 1.4 
Map<String, String> list = new HashMap<String, String>(); 
    ^
(use -source 5 or higher to enable generics) 
1 error 
1 warning 

这是我在我的代码中使用其中的一个较短的版本。我基本上只是将一些SQL结果存储到这个列表中。

try { 
    conn = ......); 
    String SQL = "SELECT * FROM list"; 

    getListRS = conn.prepareStatement(SQL); 

    ResultSet rsListResult = getListRS.executeQuery(); 

    Map<String, String> list = new HashMap<String, String>(); 

    while (rsListResult.next()) { 
     list.put(rsListResult.getString(0), rsListResult.getString(1)); 
    } 

    rsListResult.close(); 
    conn.close(); 
} 
catch (SQLException se) { 
    se.printStackTrace(); 
} 
catch (Exception e) { 
    e.printStackTrace(); 
} 
finally { 
    try { 
     if (getListResult != null) { 
      getListResult.close(); 
     } 
    } 
    catch (SQLException se2) { 
     se2.printStackTrace(); 
    } 
    try { 
     if (conn != null) { 
      conn.close(); 
     } 
    } 
    catch (SQLException se) { 
     se.printStackTrace(); 
    } 
} 

if (this.list.containsKey(mail.getSender()+"="+mail.getRecipients())) { 
    System.out.println(list); 
    return mail.getRecipients(); 
} else { 
    System.out.println(listlist); 
    return null; 
} 

由于James不让我编译,还可以使用其他什么清单来达到这个目的。

的错误是在这里:

 <javac destdir="${build.classes}" debug="${debug}" optimize="${optimize}" deprecation="${deprecation}" target="${jdk.target}" source="${jdk.source}"> 
+0

是你得到的唯一错误信息是? – Arctigor

+0

这是java编译器的错误,你用什么来编译你的类? maven,蚂蚁? –

+0

Yeap,这是唯一的错误消息。我无法编译。那么是否有类似于hashmap的东西,我可以用它来编译,因为我不知道如何更高的源代码。据我所知,这个服务器是非常古老的,我不认为它支持更进一步的Java,因为我专门为它安装了1.4 jdk – Nicky

回答

1

这是从Java编译器错误。 在蚂蚁定义中的javac标签源水平,例如:

<javac target="1.5" source="1.5" .....> 

(或者检查default.properties文件jdk.targetjdk.source和改变那些1.5)。

使用至少1.5级别来允许泛型。

顺便说一句。要检查你有什么java版本,你可以打电话java -version当你去jdk bin文件夹。

+0

我加了build.xml行错误号 – Nicky

2

因为泛型是在Java 1.5中引入的,你现在可以做的是使用原料包含HashMap,并使用了很多检查,并投下

但最好的办法是升级你的Java版本