2013-04-14 3 views
4

У меня очень неприятная проблема: при экспорте jar-файла из моего исходного кода в eclipse я не получаю никакой информации в stacktrace об источнике и номере строки, в котором возникает ошибка. Я проверил параметры компилятора в ecplise для проекта и все параметры в генерации файла section. Я разрабатываю плагины для Minecraft, которые выполняются серверным программным обеспечением bukkit. Мой источник находится в пакете de.celestialcraft.agentestate. На вхождение исключения я получаю такую ​​StackTrace:Неизвестный источник в Stacktrace Java Eclipse

23:43:57 [INFO] [email protected] 
23:43:57 [SEVERE] Could not pass event BlockDamageEvent to AgentEstate v2.1alpha 

org.bukkit.event.EventException 
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja 
va:363) 
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav 
a:62) 
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j 
ava:477) 
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j 
ava:462) 
    at de.celestialcraft.AgentEstate.AgentEstateBlockListener.onBlockBreak(U 
nknown Source) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja 
va:361) 
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav 
a:62) 
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j 
ava:477) 
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j 
ava:462) 
    at ir.b(ItemInWorldManager.java:393) 
    at ir.a(ItemInWorldManager.java:200) 
    at iv.a(NetServerHandler.java:782) 
    at ei.a(Packet14BlockDig.java:67) 
    at cg.b(TcpConnection.java:467) 
    at iv.d(NetServerHandler.java:220) 
    at iw.b(NetworkListenThread.java:57) 
    at ht.b(DedicatedServerListenThread.java:34) 
    at net.minecraft.server.MinecraftServer.r(MinecraftServer.java:981) 
    at ho.r(DedicatedServer.java:309) 
    at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:857) 
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:744) 
    at fy.run(ThreadMinecraftServer.java:16) 
Caused by: java.lang.NullPointerException 
    at com.sk89q.worldedit.schematic.MCEditSchematicFormat.save(Unknown Sour 
ce) 
    at de.celestialcraft.AgentEstate.Estate.saveState(Unknown Source) 
    at de.celestialcraft.AgentEstate.Estate.create(Unknown Source) 
    at de.celestialcraft.AgentEstate.Estate.create(Unknown Source) 
    at de.celestialcraft.AgentEstate.AgentEstateBlockListener.onBlockDamage(
Unknown Source) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja 
va:361) 
    ... 25 more 

я поставил путь JDK в настройках пути сборки как Lib для проекта. Надеюсь, вы сможете помочь мне в этом вопросе. Спасибо.

+0

Как вы экспортируете банку? – DiogoSantana

+0

Просто используя встроенную функцию Eclipse (щелкните правой кнопкой мыши по имени проекта >> Экспорт) – Nerade

+0

ОС и версия java? Вы можете отлаживать этот код? – DiogoSantana

ответ

0

Ваш проект должен быть отмечен для включения конкретных параметров проекта, а в Java Compiler -> Generatefile, опция Добавить номер строки ... не должна быть отмечена.

+0

Я пробовал эту, но такую ​​же проблему. – Nerade

0

Поскольку Bukkit является API, когда вы кодируете плагин bukkit, вы создаете блоки кода таким образом, что только Bukkit знает, что делать с указанным кодом. Чтобы узнать, что вызывает ошибку, которую вы разместили здесь, вам нужно посмотреть верхнюю строку, если строки «at» в StackTrace и найти ее в исходных файлах Bukkit в Github. Например, в этом StackTrace у вас есть это в верхней части:

org.bukkit.event.EventException 
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:363) 

Вы можете видеть, что есть Bukkit EventException вызвано ошибкой в ​​JavaPluginLoader в строке 363. Для того, чтобы выяснить, что именно там происходило , вы должны посетить https://github.com/Bukkit/Bukkit/releases и загрузить соответствующую исходную версию для версии MC, для которой вы кодируете. В этом zip-файле вы найдете исходную папку в src/main/java/и следуете по пути в строке 2 этой stacktrace (org/bukkit/plugin/java/JavaPluginLoader), а в строке 363 этого файла вы увидите, где произошла ошибка.

Поскольку я не знаю, какую версию Bukkit вы кодируете, я не могу помочь вам пройти мимо здесь, кроме как сказать, что какой бы способ в этом файле не содержал строку 363, поскольку часть ее относится к вашей проблема. Если вы выясните, что делает этот метод, это то, что Bukkit пытался сделать с вашим кодом плагина и не удалось.

Смежные вопросы