我有一个简单的Java程序,它包含两个 function myFunction() {
// Declare variables
var input, filter, table, tr, td, i, occurrence;
input = document.getElementById("myInput");
filter = input.value.toUpperCase();
table = document.getElementById("myTable");
tr = table.getElementsByTagName("tr");
// Loop through all table rows, and hide those who don't match the search query
for (i = 0; i < tr.length; i++) {
occurrence = false; // Only reset to false once per row.
td = tr[i].getElementsByTagName("td");
for(var j=0; j< td.length; j++){
currentTd = td[j];
if (currentTd ) {
if (currentTd.innerHTML.toUpperCase().indexOf(filter) > -1) {
tr[i].style.display = "";
occurrence = true;
}
}
}
if(!occurrence){
tr[i].style.display = "none";
}
}
}
文件。从我的IDE(IntelliJ)执行时它运行正常。它也编译(通过.java
实用程序)就好了。但是,当我尝试从Windows命令提示符(使用javac
)运行它时,我收到此错误:
java <<myClassName>>
我已经阅读了各种问题并为此错误提出了解决方案,但我无法解决。似乎用于编译代码的Java版本不被认为与我运行它的JRE的版本相同。我正在使用Exception in thread "main" java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version; class=RunExport, offset=6
at java.lang.ClassLoader.defineClassImpl(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:364)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:154)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:777)
at java.net.URLClassLoader.access$400(URLClassLoader.java:96)
at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:1225)
at java.security.AccessController.doPrivileged(AccessController.java:366)
at java.net.URLClassLoader.findClass(URLClassLoader.java:660)
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:942)
at java.lang.ClassLoader.loadClass(ClassLoader.java:851)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:827)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:494)
。我使用的jdk1.8.0_91
和javac.exe
文件都在java.exe
中。这也是我的Windows C:\Program Files\Java\jdk1.8.0_91\bin
环境变量中定义的路径。
答案 0 :(得分:2)
此错误意味着您正在使用不同的,不兼容的Java版本进行编译和运行。
执行java -version
和javac -version
以了解这些命令实际使用的版本。
然后,要修复版本,您有三个选项:
通过Java控制面板更改使用的Java版本。
通过编辑PATH环境变量来更改使用的Java版本。所需Java版本的路径应位于任何其他Java版本的路径之前。
如果这些都不起作用,或者这是一次性使用,您只需在运行/编译程序时指定完整路径:
C:\Program Files\Java\jdk1.8.0_91\bin\java.exe
此材料取自Carlos Heuberger的评论
答案 1 :(得分:-1)
您的IntelliJ可能是指默认的JRE。浏览此链接 https://www.jetbrains.com/help/idea/2017.1/defining-a-jdk-and-a-mobile-sdk-in-intellij-idea.html 设置intelliJ。确保指向配置为路径的JRE。