2014-10-02 6 views
0

Я создаю хэш-карту в JVM и хочу получить к ней доступ после jpype.shutdownJVM, как я могу это сделать?Переменные вызовов, созданные в JVM после закрытия JVM в JPype

Я знаю Dict работает как HashMap в питона, я попробовал:

jpype.startJVM (jpype.getDefaultJVMPath() "- Djava.class.path =% s" % классам) HashMap = jpype.java .util.HashMap() ... # вставить пары jpype.shutdownJVM() ... hashmap ["key"] это не работает.

Спасибо.

ответ

0

Доступ к ключам будет отображаться в java-вызовах. Поскольку вы закрыли jvm, это не сработает.

Сначала вы должны создать новый каталог python с Java HashMap. Убедитесь, что значения не являются сложными объектами Java и могут получить translated automatically.

import jpype 
jpype.startJVM(jpype.getDefaultJVMPath()) 
hashmap = jpype.java.util.HashMap() 
# insert pairs 
hashmap.put("foo", "bar") 
# normally newmap = dict(hashmap) should work but jpype 
# doesn't seem to support this... 
newmap = {} 
for i in hashmap: 
    # you might have to map more complex keys or values to python objects 
    # before putting them into newmap 
    newmap[i] = hashmap[i] 
jpype.shutdownJVM() 
print newmap["foo"]