Java bizarre.lang.ExceptionInInitializerError - JSoup


Dans mon dernier projet, j'utilise JSoup pour récupérer une page Web, obtenir tous les éléments avec la classe ".têtes de" et ensuite enregistrer des parties spécifiques d'un fichier. Lorsque je l'exécute, j'obtiens cette erreur:

java.lang.ExceptionInInitializerError
    at org.jsoup.nodes.Entities$EscapeMode.<clinit>(Entities.java:19) ~[?:?]
    at org.jsoup.nodes.Document$OutputSettings.<init>(Document.java:373) ~[?:?]
    at org.jsoup.nodes.Document.<init>(Document.java:18) ~[?:?]
    at org.jsoup.parser.TreeBuilder.initialiseParse(TreeBuilder.java:29) ~[?:?]
    at org.jsoup.parser.TreeBuilder.parse(TreeBuilder.java:42) ~[?:?]
    at org.jsoup.parser.HtmlTreeBuilder.parse(HtmlTreeBuilder.java:53) ~[?:?]
    at org.jsoup.parser.Parser.parseInput(Parser.java:30) ~[?:?]
    at org.jsoup.helper.DataUtil.parseByteData(DataUtil.java:94) ~[?:?]
    at org.jsoup.helper.HttpConnection$Response.parse(HttpConnection.java:603) ~[?:?]
    at org.jsoup.helper.HttpConnection.get(HttpConnection.java:195) ~[?:?]
    at de.zbs.advancedheads.main.AdvancedHeads.downloadDatabase(AdvancedHeads.java:48) ~[?:?]
    at de.zbs.advancedheads.main.AdvancedHeads.onEnable(AdvancedHeads.java:33) ~[?:?]
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) ~[spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-fdc1440-53fac9f]
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-fdc1440-53fac9f]
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-fdc1440-53fac9f]
    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:357) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-fdc1440-53fac9f]
    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:317) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-fdc1440-53fac9f]
    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.reload(CraftServer.java:741) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-fdc1440-53fac9f]
    at org.bukkit.Bukkit.reload(Bukkit.java:535) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-fdc1440-53fac9f]
    at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-fdc1440-53fac9f]
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-fdc1440-53fac9f]
    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-fdc1440-53fac9f]
    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchServerCommand(CraftServer.java:627) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-fdc1440-53fac9f]
    at net.minecraft.server.v1_8_R3.DedicatedServer.aO(DedicatedServer.java:412) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-fdc1440-53fac9f]
    at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:375) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-fdc1440-53fac9f]
    at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:653) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-fdc1440-53fac9f]
    at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:556) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-fdc1440-53fac9f]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_73]
Caused by: java.lang.NullPointerException
    at java.util.Properties$LineReader.readLine(Unknown Source) ~[?:1.8.0_73]
    at java.util.Properties.load0(Unknown Source) ~[?:1.8.0_73]
    at java.util.Properties.load(Unknown Source) ~[?:1.8.0_73]
    at org.jsoup.nodes.Entities.loadEntities(Entities.java:236) ~[?:?]
    at org.jsoup.nodes.Entities.<clinit>(Entities.java:220) ~[?:?]
    ... 28 more

Mon code est le suivant:

private boolean downloadDatabase() {
    new File(path).mkdirs();
    try {
        Document doc = Jsoup.connect("http://heads.freshcoal.com/maincollection.php").get();
        Elements head = doc.select(".heads");
        System.out.println(head);
        for (Element e : head) {
            Attributes att = e.attributes();
            System.out.println(att);
            String command = att.get("data-clipboard-text");
            System.out.println(command);
            String remover = command.replace("/give @p skull 1 3 {display:{Name:\"", "");
            String name = remover.substring(0, 5);
            Bukkit.broadcastMessage(name);
            String texture = remover.substring(30, 50);
            Bukkit.broadcastMessage(texture);
        }
        return true;
    } catch (IOException e) {
        e.printStackTrace();
        return false;
    }
}

Oui, j'ai déjà vérifié si la bibliothèque jsoup est installée, je ne savais pas comment en faire une bibliothèque donc j'ai juste pris les sources et les ai mises dans mon projet.

Merci pour toute aide à l'avance!

Author: TheLexoPlexx, 2016-02-12

1 answers

Le problème est ce que vous avez fait avec la bibliothèque, fondamentalement. Vous n'avez pas besoin de en faire une bibliothèque - il vous suffit de le télécharger en tant que fichier jar et de le mettre dans votre chemin de classe.

Il semble que vous ayez inclus la source, mais vous n'avez pas inclus les fichiers de propriétés qui sont supposés être disponibles - dans ce cas, entities-base.properties. Vous obtenez un NullPointerException car Entities.class.getResourceAsStream(filename) renvoie null. Bien qu'il y ait sans aucun doute des moyens de résoudre ce problème avec votre approche "incluez simplement la source", vous devriez vraiment, vraiment utiliser le fichier jar préemballé.

 2
Author: Jon Skeet, 2016-02-11 21:51:01