双击运行jar包与命令行运行方式反馈的区别

今天碰到了,小惊了一下,主要惊异于以前一直没有发现这个问题

双击的反馈:
双击运行jar包与命令行运行方式反馈的区别

而命令行的反馈:

引用

D:\>java -jar webrowser.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/jdesktop/jdic/bro
wser/WebBrowserListener
Caused by: java.lang.ClassNotFoundException: org.jdesktop.jdic.browser.WebBrowse
rListener
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: SimpleBrowser. Program will exit.

让我开始百思不得其解main class怎么会找不到?明明放在里面了的,还仔仔细细地打开jar包观察,也验看了MANIFEST.MF文件,没问题啊,看来误会无处不在啊,时间就是耗在这种看不出的“隐形”问题上的

还有彼此的ClassPath区别,命令行是包括可运行jar包当前目录,而双击执行怎是JRE的bin

你可能感兴趣的:(java,thread,.net,Security,sun)