【发布时间】:2016-03-03 17:32:39
【问题描述】:
我创建了一个 JAVA 应用程序来获取电影的 IMDB 评级。该应用程序采用一个命令行参数(电影名称)并显示相同的评级。我已将应用程序添加到右键单击上下文菜单中。所以,现在当我右键单击时,我需要将文件名(不带扩展名)作为命令行参数传递。我怎样才能做到这一点?
我尝试在注册表中添加%1 作为占位符,但它似乎不起作用。该应用程序使用参数从命令行运行。
有人可以帮我吗?
命令行:
java -jar C:\NetBeansProjects\APPLICATION\dist\APPLICATION.jar daredevil
输出:
错误
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at application.IMDB.IMDBFetch(IMDB.java:67)
at application.IMDB.URLParse(IMDB.java:54)
at application.IMDB$4.run(IMDB.java:387)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$300(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
注册表项
java -jar "C:\NetBeansProjects\APPLICATION\dist\APPLICATION.jar" "%1"
【问题讨论】:
-
那么你在你的java程序中收到了什么?是什么导致了 NPE?
-
电影名称作为命令行参数接收。当我右键单击一个文件时,应该会收到文件的名称,但我猜没有收到,这会导致 NPE。
-
是的,我明白这一点。修改您的程序以转储您实际收到的参数的值,以确保问题确实在于传递参数。传递错误参数会导致 NPE 什么?
标签: java contextmenu desktop-application right-click