Solved java.lang.ExceptionInInitializerError

Discussion in 'Plugin Development' started by Zacky1, Dec 15, 2012.

Thread Status:
Not open for further replies.
  1. Offline

    Zacky1

    Okay so I was coding my plugin... I was changing the classes to non-static methods since the getConfig() method required a non-static environment... once I compiled and ran it, this huge a**error came up.. Not quite sure whats causing it other than those 3 lines:

    Code:
    static NC_Main NC_main = new NC_Main();
    static NC_Worlds_Delete NC_Worlds_Delete = new NC_Worlds_Delete();
    static NC_Worlds NC_Worlds = new NC_Worlds();

    Anyone mind explaining whats wrong/what I did wrong with the 3 above?
    Code:
    2012-12-16 01:24:38 [SEVERE] Could not load 'plugins\test.jar' in folder 'plugins'
    org.bukkit.plugin.InvalidPluginException: java.lang.ExceptionInInitializerError
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:154)
        at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:305)
        at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:230)
        at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:227)
        at org.bukkit.craftbukkit.CraftServer.reload(CraftServer.java:577)
        at org.bukkit.Bukkit.reload(Bukkit.java:183)
        at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:23)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:185)
        at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:502)
        at org.bukkit.craftbukkit.CraftServer.dispatchServerCommand(CraftServer.java:494)
        at net.minecraft.server.DedicatedServer.al(DedicatedServer.java:258)
        at net.minecraft.server.DedicatedServer.r(DedicatedServer.java:223)
        at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:493)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:426)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:856)
    Caused by: java.lang.ExceptionInInitializerError
    [B]    at com.test.event.NC_Main.<clinit>(NC_Main.java:25)[/B]
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:143)
        ... 14 more
    Caused by: java.lang.IllegalArgumentException: File cannot be null
        at org.apache.commons.lang.Validate.notNull(Validate.java:203)
        at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:170)
        at org.bukkit.plugin.java.JavaPlugin.reloadConfig(JavaPlugin.java:117)
        at org.bukkit.plugin.java.JavaPlugin.getConfig(JavaPlugin.java:111)
    [B]    at com.test.event.NC_Worlds_Delete.<init>(NC_Worlds_Delete.java:9)[/B]
    [B]    at com.test.event.NC_Worlds.<clinit>(NC_Worlds.java:16)[/B]
        ... 18 more
    Here are my classes:
    NC_Main:
    Code:
    package com.test.event;
     
     
    public class NC_Main extends JavaPlugin implements Listener{
     
        static NC_Worlds NC_Worlds = new NC_Worlds(); <--- This is line 25 (as stated above in the error)
        
    NC_Worlds:
    Code:
    package com.test.event;
     
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.command.ConsoleCommandSender;
     
    public class NC_Worlds {
        static ConsoleCommandSender console = Bukkit.getServer().getConsoleSender();
        static NC_Main NC_main = new NC_Main();
        static NC_Worlds_Delete NC_Worlds_Delete = new NC_Worlds_Delete(); <--- This is line 16 (as stated above in the error)
    
    NC_Worlds_Delete:
    Code:
    package com.test.event;
     
    import java.io.File;
    import java.io.IOException;
     
    public class NC_Worlds_Delete{
       
        static NC_Main NC_main = new NC_Main(); <--- This is line 9(as stated above in the error)
    

    THANK YOU :DDD
     
  2. Offline

    mbaxter ʇıʞʞnq ɐ sɐɥ ı

    NC_Worlds_Delete's constructor is calling getConfig, but since you're initializing these way before onEnable is called it results in an error. Also, why on earth are you storing all these things as static and creating multiple instances of what is presumably your running plugin?

    This rather looks like you should read up on some basic object oriented programming tutorials first before continuing.
     
  3. Offline

    Zacky1

    Thank you for your response! I got it fixed :3 And I don't really know why I had mutliple things stored as static... :) But, its fixed. Thank you :D
     
  4. Offline

    fireblast709

    Besides that you had NC_Main create a NC_Worlds, NC_Worlds created a NC_Worlds_Delete and NC_Worlds_Delete created a NC_Main. This way you could never initialize one of them (afaik)
     
Thread Status:
Not open for further replies.

Share This Page