首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在预先编译的jar文件的nullpointerexception处停止执行之前进行调试?

如何在预先编译的jar文件的nullpointerexception处停止执行之前进行调试?
EN

Stack Overflow用户
提问于 2014-07-03 06:50:05
回答 1查看 367关注 0票数 0

我想调试为什么一个对象从这一行返回null

代码语言:javascript
复制
debug_log = LoggingConfigFileLoader.getLogFilePaths().get("debug.log");

在这里:https://github.com/UniversalMediaServer/UniversalMediaServer/blob/master/src/main/java/net/pms/PMS.java#L356

我希望知道在异常发生之前发生了什么java执行。不幸的是,.jar来自一个大项目,可能很难构建。尤其是对我来说,谁都不懂java。这是在openjdk7上的,( java开发人员也使用它)。但是,代码以前从未在FreeBSD上运行过。

最后,我想找出这个未处理异常的真正原因/根本原因:

代码语言:javascript
复制
ums4 UMS/ root~# /usr/local/openjdk7/bin/java -Djava.awt.headless=true -classpath /usr/local/share/universal-media-server/ums.jar net.pms.PMS
 18:18:12.424 [main] DEBUG o.a.c.c.ConfigurationUtils - ConfigurationUtils.locate(): base is null, name is /root/.config/UMS/UMS.conf
 18:18:12.430 [main] DEBUG o.a.c.c.DefaultFileSystem - Could not locate file /root/.config/UMS/UMS.conf at null: no protocol: /root/.config/UMS/UMS.conf
 18:18:12.431 [main] DEBUG o.a.c.c.ConfigurationUtils - Loading configuration from the absolute path /root/.config/UMS/UMS.conf
 18:18:12.431 [main] DEBUG o.a.c.c.PropertiesConfiguration - Base path set to file:///root/.config/UMS/UMS.conf
 18:18:12.463 [main] DEBUG o.a.c.c.PropertiesConfiguration - FileName set to UMS.conf
 18:18:12.464 [main] DEBUG o.a.c.c.PropertiesConfiguration - Base path set to /root/.config/UMS
 18:18:12.480 [main] DEBUG n.p.c.ConfigurationReader - Reading cred.path: default: "", current: "/root/.config/UMS/UMS.cred"
 18:18:12.498 [main] INFO  net.pms.PMS - Starting Universal Media Server 4.0.0-a1
 18:18:12.499 [main] INFO  net.pms.PMS - Based on PS3 Media Server by shagrath, copyright 2008-2014
 18:18:12.499 [main] INFO  net.pms.PMS - http://www.universalmediaserver.com
 18:18:12.499 [main] INFO  net.pms.PMS - 
 18:18:12.499 [main] INFO  net.pms.PMS - Build: 38318285b (2014-06-02)
 18:18:12.499 [main] INFO  net.pms.PMS - Java: OpenJDK 64-Bit Server VM 1.7.0_60 64-bit by Oracle Corporation
 18:18:12.500 [main] INFO  net.pms.PMS - OS: FreeBSD 64-bit 9.2-RELEASE-p3
 18:18:12.500 [main] INFO  net.pms.PMS - Encoding: US-ASCII
 18:18:12.522 [main] INFO  net.pms.PMS - Memory: 313 MB
 18:18:12.522 [main] INFO  net.pms.PMS - Language: en
 18:18:12.522 [main] INFO  net.pms.PMS - 
 18:18:12.523 [main] INFO  net.pms.PMS - Working directory: /var/db/universal-media-server/.config/UMS
 18:18:12.525 [main] INFO  net.pms.PMS - Temp directory: /tmp/universalmediaserver
 18:18:12.525 [main] INFO  net.pms.PMS - Logging config file: internal defaults
 18:18:12.526 [main] INFO  net.pms.PMS - 
 18:18:12.526 [main] INFO  net.pms.PMS - Profile directory: /root/.config/UMS
 18:18:12.527 [main] INFO  net.pms.PMS - Profile directory permissions: rw
 18:18:12.527 [main] INFO  net.pms.PMS - Profile path: /root/.config/UMS/UMS.conf
 18:18:12.527 [main] INFO  net.pms.PMS - Profile permissions: rw
 18:18:12.527 [main] INFO  net.pms.PMS - Profile name: ums4
 18:18:12.528 [main] INFO  net.pms.PMS - 
 18:18:12.528 [main] INFO  net.pms.PMS - Web conf path: /root/.config/UMS/WEB.conf
 18:18:12.528 [main] INFO  net.pms.PMS - Web conf permissions: file not found
 18:18:12.528 [main] INFO  net.pms.PMS - 
 18:18:12.540 [main] ERROR net.pms.PMS - A serious error occurred during PMS init
 java.lang.NullPointerException: null
    at net.pms.newgui.DbgPacker.<init>(DbgPacker.java:40) ~[ums.jar:4.0.0-a1]
    at net.pms.PMS.displayBanner(PMS.java:357) [ums.jar:4.0.0-a1]
    at net.pms.PMS.init(PMS.java:509) [ums.jar:4.0.0-a1]
    at net.pms.PMS.createInstance(PMS.java:1038) [ums.jar:4.0.0-a1]
    at net.pms.PMS.main(PMS.java:1138) [ums.jar:4.0.0-a1]
EN

回答 1

Stack Overflow用户

发布于 2014-07-03 07:05:13

您可以尝试将项目加载到IDE中,并设置“中断异常”断点(例如,在Eclipse中,它位于"Run -> Add Java断点.“中)。

但我相信这种方法只适用于较小的工程。例如,昨天我厌倦了等待,而番石榴的先决条件检查中断了长批处理的执行,我添加了一些日志并重新运行进程w/o调试器。所以YMMV。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24546803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档