2014-08-30 8 views
0

Bukkit 플러그인을 만들고 있지만 .properties 파일을로드하는 데 문제가 있습니다. "sun.util.ResourceBundleEnumeration을 java.lang.String으로 변환 할 수 없습니다."Java sun.uil.ResourceBundleEnumeration을 java.lang.String으로 캐스팅 할 수 없습니다.

다른 등록 정보 파일에서 2 개의 .properties 파일 (ENf 및 LANGf)에있는 키를 모두 추가하려고합니다. 내가 노력하고 어디

File tempFile = null; 
    try { 
     tempFile = File.createTempFile("temp_EN", ".properties"); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    try (FileOutputStream out = new FileOutputStream(tempFile)) { 
     tempFile.deleteOnExit(); 
     copy(r.getUC().getResource("Messages/EN.properties"), out); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    ResourceBundle tempR = null; 
    try { 
     tempR = new PropertyResourceBundle(new FileInputStream(tempFile)); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    Enumeration<String> keys = tempR.getKeys(); 
    //EN 
    Properties propsEN = new Properties(); 
    Properties propsCU = new Properties(); 
    try { 
     propsEN.load(new FileInputStream(ENf)); 
     propsCU.load(new FileInputStream(LANGf)); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    while(keys.hasMoreElements()){ 
     String key = keys.nextElement(); 
     // 
     if(!r.en.containsKey(key)){ 
      propsEN.put(keys, tempR.getString(key)); 
     } 
     if(!r.cu.containsKey(key)){ 
      propsCU.put(keys, tempR.getString(key)); 
     } 
    } 
    try { 
     FileOutputStream ENo = StreamUtil.createOutputStream(ENf); 
     FileOutputStream CUo = StreamUtil.createOutputStream(LANGf); 
     propsEN.store(ENo, ""); 
     propsCU.store(CUo, ""); 
     ENo.close(); 
     CUo.close(); 
    } catch (SecurityException | IOException e) { 
     e.printStackTrace(); 
    } 

    tempFile.delete(); 

LANGf = 일부 .properties 파일은

ENF 일부 .properties 파일이

r.getUC().의 getResource()는 특정 .properties 파일의의 InputStream을 반환 파일 = 파일 누락 된 키를 모두 복사합니다.

copy (파일, 파일)는 파일을 복사하기 만합니다.

java.lang.ClassCastException가 : sun.util.ResourceBundleEnumeration가 ~ java.util.Properties.store0 (알 수없는 소스)에서 java.lang.String의 캐스트 할 수없는 [: 1.7.0_21] 있는 java.util에서 .Properties.store (Unknown Source) ~ [? : 1.7.0_21] Bammerbom.UltimateCore.UltimateCore.onEnable (UltimateCore.)에서 을 Bammerbom.UltimateCore.UltimateFileLoader.addConfig (UltimateFileLoader.java:209) ~ [? :?] 에 있습니다. java : 22) ~ [? :?] at org.bukkit.plugin.java.JavaPlugin.setEnabled (JavaPlugin.java:316) ~ [Server.jar : git-Bukkit-1.7.9-R0.2-20- g0b2ed13-b3108jnks] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin (JavaPluginLoader.java:324) [Server.jar : git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at org.bukkit.plugin.SimplePluginManager.enablePlugin (SimplePluginManager.java:404) [Server.jar : git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at org.bukkit.craftbukkit.v1_7_R4 .CraftServer.loadPlugin (CraftServer.java:455) [Server.jar : git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at org.bukkit.craftbukkit.v1_7_R4.CraftServer.enablePlugins (CraftServer. java : 389) [Server.jar : git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at org.bukkit.craftbukkit.v1_7_R4.CraftServer.reload (CraftServer.java:839) [서버. jar : git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at org.bukkit.Bukkit.reload (Bukkit.java:303) [Server.jar : git-Bukkit-1.7.9-R0 .2-20-g0b2ed13-b3108jnks] at org.bukkit.command.defaults.ReloadCommand.execute (ReloadCommand.java:23) [Server.jar : git-Bukkit-1.7.9-R0.2-20-g0b2ed13- b3108jnks] at org.buk kit.command.SimpleCommandMap.dispatch (SimpleCommandMap.java:180) [Server.jar : git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand (CraftServer.java:740) [Server.jar : git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchServerCommand (CraftServer.java:726) [Server.jar : git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at net.minecraft.server.v1_7_R4.DedicatedServer.aB (DedicatedServer.java:294) [Server.jar : git- Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at net.minecraft.server.v1_7_R4.DedicatedServer.v (DedicatedServer.java:259) [Server.jar : git-Bukkit-1.7.9-R0 .2-20-g0b2ed13-b3108jnks] at net.minecraft.server.v1_7_R4.MinecraftServer.u (MinecraftServer.java:558) [Server.jar : git-Bukkit-1.7.9-R0.2-20-g0b2ed13- b3108jnks] at net.minecraft.server.v1_7_R4.MinecraftServer.run (MinecraftServer.java:469) [Server.jar : git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at net.minecraft.server .v1_7_R4.ThreadServerApplication.run (SourceFile : 628) [Server.jar : git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks]

+0

스택 추적을 읽고 게시하면 예외가 발생한 곳을 정확하게 알 수 있습니다. –

+0

죄송합니다. stacktace를 추가했습니다. – Bammerbom

답변

0

속성에 각 키의 값을 저장하는 대신, 키 열거 형의 값을 저장합니다.

propsEN.put(keys, tempR.getString(key)); 

분명히 propsCU에 대한

propsEN.put(key, tempR.getString(key)); 
       ^-- no 's' here. 

동일해야합니다.

+0

와우는 나 자신을 보지 못했습니다. -_- 고마워. – Bammerbom

관련 문제