1. 程式人生 > >jdk安裝不當-找不到或無法載入主類 com.sun.tools.javac.Main

jdk安裝不當-找不到或無法載入主類 com.sun.tools.javac.Main

情景:電腦上之前安裝了jdk1.8,今天又安裝了jdk1.7,配置idea用jdk1.7執行程式碼,配置完畢,點選執行,報錯:

Error:java: System Java Compiler was not found in classpath:
java.lang.ClassNotFoundException: com.sun.tools.javac.api.JavacTool
	at java.net.URLClassLoader$1.run(Unknown Source)
	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.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)
	at org.jetbrains.jps.builders.impl.java.JavacCompilerTool.createCompiler(JavacCompilerTool.java:70)
	at org.jetbrains.jps.javac.JavacMain.compile(JavacMain.java:66)
	at org.jetbrains.jps.javac.ExternalJavacProcess.compile(ExternalJavacProcess.java:195)
	at org.jetbrains.jps.javac.ExternalJavacProcess.access$400(ExternalJavacProcess.java:47)
	at org.jetbrains.jps.javac.ExternalJavacProcess$CompilationRequestsHandler$1.run(ExternalJavacProcess.java:262)
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

看到ClassNotFoundException以及JavacTool,果斷開啟cmd,執行javac:

又執行java -version:

java -version沒問題,javac報錯,說明環境變數配置沒有問題,極有可能是Java安裝的問題。

百度得知:

安裝jdk過程中,還會彈出一個jre的安裝,這個和jdk不能安裝在同一目錄下,否則會衝突。

果斷重新安裝,問題解決。