Netbeans 8.0.2与Java 8中的错误Error: Could not find or load main class
是什么?
从似乎无处可见,我在从.jar
文件夹复制后尝试从桌面执行已清理并生成的dist
文件时出错。这已经有效了多年。
但我收到有关java JNI文件的错误。它说用-Xlint编译:弃用。我做了,然后我删除了有问题的方法,无论如何都没有使用。
然后我收到Could not find or load main class
错误。
我找到了this SO thread。一位用户在页面的某个位置说他刚刚改为Java 8.我也是。
他说他改回到7然后回到8并且问题消失了。
所以我将Source\Binary format
更改为JAVA 7
并遇到了需要Java 8的错误,因此我将Source\Binary format
更改为JAVA 8
。
清理并构建后,不再出现错误。
我没有改变我的代码;我没有改变课程路径。
究竟发生了什么?是Netbeans 8还是Java 8?这是一个非常古怪的解决方法。
这是我的DOS路径:
C:\用户\多夫>路径
PATH=C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Common Files\Microsoft
Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Window
s Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System
32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Com
mon Files\Intel\WirelessCommon\;C:\Program Files (x86)\Windows Live\Shared;C:\Pr
ogram Files (x86)\Common Files\Roxio Shared\DLLShared\;C:\Program Files (x86)\Co
mmon Files\Roxio Shared\OEM\DLLShared\;C:\Program Files (x86)\Common Files\Roxio
Shared\OEM\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\OEM\12.0
\DLLShared\;C:\Program Files (x86)\Roxio\OEM\AudioCore\;C:\Program Files (x86)\S
kype\Phone\
以下是Java控制面板告诉我的用户和系统的运行时环境设置:
Platform Product Location Path Enabled
1.8 1.8.0_51 http://java.sun.com/products/autodl/j2se C:\Program Files\Java\jre1.8.0_51\bin\javaw.exe true
我不知道我做了什么来解决问题,但我不希望它们再次发生。回到工作计划需要几分钟的压力。
我应该在DOS路径中添加以下一项或两项吗?
C:\ Program Files \ Java \ jdk1.8.0_51
C:\ Program Files \ Java \ jre1.8.0_51
我应该更改classpath吗?在哪里以及如何?
答案 0 :(得分:1)
错误:无法找到或加载主类
据我所知,Main-Class头中指定的类的main方法在jar文件中的java 7和8中都执行。我不明白为什么从java 7改为8会破坏任何东西,即使编译器和运行时不匹配(尽管你可能遇到其他问题,正如你提到的那样)。
您可以通过输入以下内容查看您拥有的java和javac版本:
java -version
javac -version
如果您觉得需要升级,可以改变路径
转到“控制面板” - >系统和安全 - >系统
单击高级系统设置
单击环境变量
在“系统变量”区域中,找到“路径”变量,突出显示它 然后单击。
进行必要的更改。
如果您有Windows 8或10(甚至可能是7),您只需搜索路径并单击编辑系统环境变量,这将使您直接进入步骤4.