簡體   English   中英

IntelliJ IDEA 中的錯誤“ClassNotFoundException”

[英]Error "ClassNotFoundException" in IntelliJ IDEA

我做了這個簡單的程序:

package main.java;

public class start {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

並得到這個錯誤。 我不知道發生了什么,

"C:\Program Files\Java\jdk1.7.0_21\bin\java" -Didea.launcher.port=7532 "-Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 12.1.4\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.7.0_21\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\jce.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\jfxrt.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\resources.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\rt.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.7.0_21\jre\lib\ext\zipfs.jar;C:\Users\Tim\IdeaProjects\Rust\out\production\Rust;C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 12.1.4\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain java.start
Exception in thread "main" java.lang.ClassNotFoundException: java.start
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:188)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:113)

Process finished with exit code 1

任何人都知道什么是錯的?

可能您的項目結構是src/main/java/start.java但是當您將它添加到 IntelliJ 時,您已將src設置為源文件夾,因此 IntelliJ 將main.java作為一個包。

項目設置 ( Ctrl + Shift + Alt + S ) → Modules → Sources 選項卡中將src/main/java 設置Source Folder 然后在您的簡單程序中將包更改為您喜歡的任何內容(例如my.test )。 之后,如果 IntelliJ 報告任何錯誤與使用Alt + Enter 的快速修復一致應該會有所幫助

我遇到了這個問題,無法使用任何這些解決方案來解決它。 但是,我認為問題在於我使用“打開”從包含一些 java 文件的目錄創建項目。相反,我必須使用與 root 相同的目錄“創建新項目”。

確保在“創建新項目”時刪除任何“.idea”目錄和“.iml”文件,否則它會抱怨項目已經在給定目錄中。

如前所述,您應該檢查文件 → 項目結構 → 項目設置 → 模塊 → 源 - 您的文件夾必須標記為“源”。 您還應該更新您的 Run → EditConfigurations → Configuration → Main 類以與您的包相對應

在我的情況下,項目的路徑有一些字符,例如:\\ /

例如: C:\\something\\other:thing\\aaa\\project ,這就是它不起作用的原因。 將項目移動到沒有這些字符的路徑修復了錯誤。

只是為了將來:我在文件夾名稱中有 unicode 字符,例如“課程名稱”/Tehtävät/Project,問題出在“ä”中。 當我將其更改為“a”時,程序開始工作。

對我來說,在 IntelliJ-Idea 2016 中,問題是在Project_structure/modules ,在 Path 選項卡中,您必須選中“Inherit project compile output path” ,而不是“Use module compile output path”

最近重新安裝了我的智能社區版后,我解決了這個問題。

IntelliJ IDEA 2016.3.2 Build #IC-163.10154.41,構建於 2016 年 12 月 21 日 JRE: 1.8.0_112-release-408-b6 amd64 JVM: OpenJDK 64-Bit Server VM by JetBrains sro om 我的筆記本電腦與 asus N477.3SV.Ubuntu16

上下文是:我試圖重新啟動以前運行良好的 Intellij 項目。 那個項目是用 intellij CI 完成的,它們位於我的 freebox 服務器上。

我已經嘗試了這里提出的所有解決方案,但沒有結果。 最后我只是:關閉項目。 關閉 Intellij。 將整個項目從我的 freebox 服務器復制/粘貼到我的系統文件夾。 重新啟動 Intellij,打開之前粘貼到我的系統文件夾中的項目。 從 /Build/Re build 菜單重建項目。 最后運行我的項目。 和 !!! 完成...它的工作原理!

我的建議是:路徑名長度或項目路徑名中包含的字符是否有問題。 確實 /run/user/1000/gvfs/smb-share:server=freebox,share=disque%20dur/blaBlaToMyFileProjectFolder 完整路徑名內容 :,-_/%= 中的 127 個字符

那個三角?

希望它有幫助。 抱歉我的英語不好。 我是法國人 ;-) 奧利弗

我也遇到了同樣的問題,但我在網上找不到解決方案,所以嘗試糾正自己,在閱讀了這么多博客后我理解了這個概念,在我的情況下一切都很好,因為我從 git 下載了代碼,但我的 IDE intellij 無法識別maven 依賴,這就是為什么 intellij 拋出這個錯誤,我的 pom.xml 有所有的依賴,但 intellij 仍然無法識別它。 我導航到 intellij 右側的 maven 窗口,並在添加后添加了我正在工作的項目的路徑 maven 加載了所有依賴項並且我的代碼工作正常。所以基本上只有三個步驟可以讓你解決它: 1. 打開 maven 窗口在智能。 2. 單擊“+”並添加您的 prjojects pom.xml 文件所在的路徑。 3. 單擊輸入。 現在您可以運行您的項目。 快樂編碼!!

上面的回答沒問題。 如果有人對提供的范圍有任何依賴,我想再添加一個選項,然后需要以下配置。

Run -> Edit Configurations -> Include dependencies with "Provided" scope.

勾選復選框,應用並運行。

檢查從錯誤堆棧中顯示的類派生的依賴項的范圍。 在我的情況下,范圍是提供的,當我刪除范圍時,它起作用了。

當我將 Intellij Idea 更新到 2019.3 並且無法使用任何這些解決方案解決它時,我遇到了這個錯誤。 但是當我取消選中 Maven 窗口中的所有配置文件並再次檢查正確的配置文件時它解決了。

如果錯誤與外部庫 jars 有關,我們需要將它們包含在提供的 scope 中。

在 Intellij run configuration 中,修改 options -> select Add dependencies with "provided" scope to classpath

你的包是main.java ,你傳遞了參數com.intellij.rt.execution.application.AppMain java.start ,你的異常說找不到java.start 這是正確的。

嘗試僅使用控制台編譯它。 離開 IDE 開始,花時間了解編譯器而不是 IDE 的工作原理。

重建項目。 就這么簡單。 不謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM