ข้อผิดพลาด: ไม่พบหรือโหลดคลาสหลักใน intelliJ IDE


151

ฉันเป็นผู้เริ่มต้นใน Java และพยายามเรียกใช้รหัสของฉันโดยใช้ IntelliJ ที่ฉันเพิ่งติดตั้งเป็น IDE ของฉันด้วย JDK 1.7 ส่วนของรหัสต่อไปนี้ไม่ได้รวบรวมและทำให้ฉันมีข้อผิดพลาด:

Error: Could not find or load main class libTest

รหัส

import java.lang.Integer;
import java.lang.String;
import java.lang.System;
import java.util.*;

class book {

    private String name = "trial";
    private int bookCode=1;
    private int issued=0;

     public void Issue(){
         if(issued==0) {
             issued=1;
             System.out.println("You have succesfully issued the book");
         }
         else {
             System.out.println("The book is already issued. Please contact the librarian for further details");
         }
    }

    public int checkCode() {
        return bookCode;
    }

    String readName() {
        return name;
    }

    public void setName(String newName){
        name=newName;
    }

    public void setBookCode(int newCode){
        bookCode=newCode;
    }
}

class library {
    private ArrayList books=new ArrayList();

    public void getList(){
        for(int bk:books){
            String bName=books(bk).readName();
            System.out.println((bk+1)+")  "+bName);
        }
    }
}

public class libTest{
    public static void main(String[] args){
        library newLib= new library();
        System.out.println("code working");
   }
}

มีการเปลี่ยนแปลงใด ๆ ที่ฉันต้องทำในการตั้งค่าคอมไพเลอร์หรือไม่? หรือมันคือรหัส


2
ชื่อไฟล์ต้นฉบับคืออะไร มันคือlibTest.javaอะไร
QuantumMechanic

import java.lang...สิ่งนี้เกิดขึ้นโดยอัตโนมัติสำหรับคลาสในlangแพ็คเกจ
Andrew Thompson

QuantumMechanic คลาสหลักของคุณจำเป็นต้องอยู่ในไฟล์ที่มีชื่อเหมือนกัน ดังนั้น libTest จำเป็นต้องอยู่ในไฟล์ java ชื่อ libTest.java มิฉะนั้นคอมไพเลอร์ java จะบ่น นอกจากนี้คุณสร้างแหล่งข้อมูลผ่าน IDEA หรือคุณสร้างโครงการ IDEA ใหม่เหนือแหล่งที่มีอยู่หรือไม่
mcfinnigan

ลองนำเข้า java.lang ไม่ได้ทำให้อะไรแตกต่าง
Mailman ที่สับสน

พวกเขาเหมือนกัน มีเหตุผลอื่นใดไหมที่ทำให้เกิดข้อผิดพลาดดังกล่าว
Mailman ที่สับสน

คำตอบ:


178

สิ่งนี้อาจช่วย:

1) เมนู "Build" -> " Rebuild Project" บางครั้ง Intellij ไม่ได้เขียนคลาสใหม่เนื่องจากมีอยู่แล้วด้วยวิธีนี้คุณขอให้ Intellij เขียนทุกอย่างใหม่

2) เมนู "เรียกใช้" -> " Edit configuration" -> ลบโปรไฟล์ -> เพิ่มโปรไฟล์กลับ ("แอปพลิเคชัน" หากเป็นแอปพลิเคชัน Java) เลือกคลาสหลักของคุณจากเมนูแบบเลื่อนลง "คลาสหลัก"

3) เมนู "Build" -> " Rebuild Project"


9
ฉันมีโครงการใหม่ล่าสุดใน IntelliJ และมันจะไม่ทำงาน Rebuild Projectทำงานให้ฉัน!
Danny Harding

ตัวเลือกที่ 2 ทำงานให้ฉัน แต่ลบโปรไฟล์การกำหนดค่าจากนั้นคลิกขวาที่คลาสของคุณ -> run
NoName

2
"Build" menu -> "Rebuild Project- ทำงานได้! ขอบคุณ
Yan Khonski

1
ตัวเลือกแรกrebuild projectทำงานได้สำหรับปัญหาของฉัน ขอบคุณ!
kwwilo

1
ฉันลบ .idea, .mvn และไดเรกทอรีเป้าหมายอื่น ๆ จากนั้นเริ่ม IntelliJ ใหม่ ไปที่บันทึกเหตุการณ์เพิ่มโครงการเป็นโครงการ Maven แล้วทำตามขั้นตอนที่กล่าวถึงโดย @Kishore ที่นี่ มันใช้งานได้แล้ว
Sunny Shekhar

105

หากคำตอบข้างต้นไม่ได้ผลสำหรับคุณเพียงแค่ปิด intelliJ IDE ของคุณและลบไฟล์และโฟลเดอร์ intelliJ IDE จากรูทของโครงการ:

rm -rf .idea *.iml 

จากนั้นเปิดโปรเจ็กต์ด้วย intelliJ มันต้องใช้งานได้แล้ว


1
สิ่งนี้ใช้ได้สำหรับฉัน ฉันยังนำเข้าโครงการของฉันอีกครั้งใน IntelliJ แต่สำหรับตัวเลือก "โมดูลกลุ่ม" ฉันใช้ "ใช้ชื่อที่ผ่านการรับรอง" (แทนที่จะ "ใช้กลุ่มโมดูลที่ชัดเจน"
markhops

3
การลบ.ideaโฟลเดอร์จะช่วยแก้ปัญหาทั้งหมดด้วย JetBrains 'IDEs :)
shelll

สิ่งนี้ได้ผลกับฉันเช่นกันฉันเป็นแฟนตัวยงของ Intellij แต่พวกเขาต้องเรียนรู้ที่จะทำสิ่งที่ง่ายเช่นกัน
Zwakele Mgabhi

เสียเวลา 30+ นาที ในที่สุดนี่คือสิ่งที่ผมต้องทำเพื่อให้การทำงานสิ่ง
Vins

วิธีนี้ในหน้านี้ใช้ได้สำหรับฉันเท่านั้น
zionpi

82

สำหรับฉันทางออกคือการแก้ไขไดเรกทอรีผลลัพธ์ภายใต้การตั้งค่าโครงการ ก่อนที่ฉันจะใช้เพียง "เป้าหมาย" สำหรับผลลัพธ์ของคอมไพเลอร์โครงการ แต่ฉันอัปเดตให้มีเส้นทางแบบเต็มเช่น D: \ dev \ sigplusjava2_68 \ target ป้อนคำอธิบายรูปภาพที่นี่


10
นั่นไม่ได้ช่วยฉันเลย
Pavel

เป็นไปได้ว่าคำตอบของฉันที่นี่เป็นคำตอบที่แตกต่างกันเล็กน้อยของ @ Ehsan ด้านล่าง บางทีโดยการระบุไดเรกทอรีเป้าหมายมันทำให้มันเป็นตำแหน่งใหม่ที่จะรวบรวมวัตถุทั้งหมดเป็นหลักในการดำเนินงานเดียวกันกับที่Rebuild Projectทำ
ลุง Iroh

1
@ UncleIroh ถ้ามันทำงานเหมือนเดิมให้สร้างใหม่ + อ่านการกำหนดค่า จะแก้ไขปัญหาในตอนแรก มันไม่ได้ แต่วิธีการแก้ปัญหาของคุณทำ
hyperum

นี่ควรเป็นคำตอบที่ยอมรับได้ บักฉันอีกครั้งเสมอ .. : p
Christopher Stock

37

ฉันมีปัญหานี้และฉันพยายามทุกอย่างภายใต้ดวงอาทิตย์ที่ฉันสามารถนึกถึงและบนเว็บไซต์นี้

ไม่มีคลาส Java ของฉันถูกรับหลังจากที่ฉันดึงจากสาขาระยะไกล ชั้นเรียนทั้งหมดมี Js สีแดงตามชื่อในลำดับชั้นของโครงการไม่ใช่ Cs สีน้ำเงิน

ในท้ายที่สุดฉันพยายามทำตามบทช่วยสอนนี้และลองทำตามขั้นตอนบางอย่างที่ไม่ได้อธิบายและแก้ไขปัญหา: https://www.jetbrains.com/help/idea/creating-and-managing-modules.html

นี่คือสิ่งที่ฉันทำ:

  1. ไปที่ไฟล์ โครงสร้างโครงการหรือกด Crtl + Shift + Alt + S
  2. เลือกโมดูลภายใต้ส่วนการตั้งค่าโครงการ
  3. ในแท็บแหล่งที่มาคลิกแหล่งที่มาในบรรทัด 'ทำเครื่องหมายเป็น:'
  4. คลิกที่ปุ่ม Apply

ด้วยเหตุผลบางอย่างชั้นเรียนทั้งหมดของฉันจึงมีสีน้ำเงินของ C

บางคนที่มีความเข้าใจที่ดีขึ้นว่า IntelliJ และ / หรือ IDE นั้นสามารถอธิบายปรากฏการณ์ได้อย่างไร แต่สิ่งที่ฉันรู้คือตอนนี้มันสามารถมองเห็นทุกชั้นเรียนและที่สำคัญกว่านั้นคือตัวหลักและเรียกใช้


สิ่งนี้ใช้ได้กับฉันหลังจากที่ฉันปิด Intellij ลบโฟลเดอร์. aide แล้วเปิด Intellij อีกครั้งและทำตามขั้นตอนข้างต้น
Shell_Leko

14

สร้างoutโฟลเดอร์อย่างชัดเจนจากนั้นตั้งค่าเส้นทางออกเป็นC:\Users\USERNAME\IdeaProjects\PROJECTNAME\out

แบบนี้

ดูเหมือนว่าจะทำงานให้ฉันเมื่อเพียงแค่outและคาดหวังว่า IntelliJ จะทำให้โฟลเดอร์ไม่ได้


ลองใช้ IntelliJ เพื่อสร้างการกำหนดค่าใหม่ให้กับคุณด้วย:

ค้นหาก่อนหน้าโดยคลิก

! [แก้ไขการกำหนดค่า

จากนั้นลบออก

ป้อนคำอธิบายรูปภาพที่นี่

และกดตกลง

ตอนนี้ (ขั้นตอนที่สำคัญ) เปิดคลาสที่มีวิธีการหลักของคุณนี่อาจจะทำได้ง่ายที่สุดโดยคลิกที่ชื่อคลาสในบานหน้าต่างโครงการด้านซ้าย

ให้Alt+ Shift+ F10และคุณควรได้รับ

นี้

ตอนนี้โดน Enter !!

Tadah ?? (มันใช้ได้เหรอ?)


สิ่งที่เรียกใช้การกำหนดค่าการทำงานโดยเฉพาะอย่างยิ่งถ้าคุณย้ายmain()ฟังก์ชั่นจากclass Mainไปยังชั้นอื่น ๆ ในกรณีดังกล่าวให้แก้ไขการกำหนดค่าการทำงานตามที่แสดงด้านบนและเปลี่ยนค่าของ 'คลาสหลัก' เป็นชื่อคลาสของคุณ (ผ่านการรับรองโดยสมบูรณ์)
forumulator

ฉันมีเพียงตัวเลือก "แก้ไขการกำหนดค่า" ใช้ไม่ได้สำหรับฉัน (
Ver Nick

ฉันอดไม่ได้ที่จะสังเกตว่าคุณรู้สึกถึงชื่อโครงการของคุณและเรียกใช้การตั้งค่าแล้ว แต่ก็ยังสามารถมองเห็นได้ชัดเจนในภาพหน้าจอที่สอง
Jacob Schneider

Jacob Schneider ว่ามันคือ ฉันจำไม่ได้ว่าทำไมฉันจึงเซ็นเซอร์มัน - อาจเป็นเพราะความระมัดระวังอย่างเหลือเฟือ
Brad Turek

14

ทำให้แคชไม่ถูกต้องและเริ่มต้น Intellij ของคุณใหม่มันใช้งานได้สำหรับฉัน ไปที่ไฟล์ตามที่แสดงในภาพที่แนบมา


7

ฉันรู้ว่าสิ่งนี้ถูกถามเมื่อไม่นานมานี้ แต่ฉันเพิ่งสะดุดกับปัญหานี้และคิดว่าการค้นพบของฉันอาจช่วยผู้อื่นได้ ดังที่กล่าวไว้แล้วข้อผิดพลาดนั้นเป็นผลมาจากโฟลเดอร์ออก นั่นเป็นเพราะเมื่อคุณพยายามเรียกใช้โปรแกรมมันจะรวบรวมรหัสก่อนและวางผลลัพธ์ที่คอมไพล์ไปยังตำแหน่งที่ออกแล้วจากนั้นจะพยายามโหลดรหัสที่คอมไพล์จากตำแหน่งที่ออก หากรหัสที่รวบรวมไม่ได้อยู่ในตำแหน่งที่คาดว่าคุณจะได้รับข้อผิดพลาด

จุดที่ฉันต้องการแบ่งปันโดยเฉพาะคือบางครั้งรหัสไม่ได้ถูกคอมไพล์ (บิวด์) แม้ว่าการกำหนดค่าการรันของคุณจะระบุ "Build" ในส่วน "Before Launch" ของพาเนลการกำหนดค่า

สิ่งนี้จะเกิดขึ้นเมื่อใด สถานการณ์หนึ่งที่อาจทำให้สิ่งนี้เกิดขึ้นคือถ้าคุณใช้โมดูลและคุณลบไดเรกทอรีออกโมดูลด้วยตนเอง ตัวอย่างเช่นถ้าฉันมีโมดูลชื่อ "foo" ควรมีไดเรกทอรีชื่อ foo ภายใต้ out / production หากคุณลบมันด้วยตนเองระบบสร้างอาจไม่ทราบว่าจะต้องสร้างใหม่

ยิ่งแย่ไปกว่านั้นถ้าคุณเลือก Build | สร้างโมดูล 'foo' แต่ก็ยังไม่สามารถสร้างโมดูลใหม่ได้ หากเป็นเช่นนั้นคุณควรเลือกไฟล์ในโมดูลเช่น 'bar.java' จากนั้นเลือก Build | คอมไพล์ใหม่ 'bar.java' ตอนนี้ไดเร็กทอรี out out / production / foo ควรถูกกู้คืน

เนื่องจากโดยปกติแล้ว IntelliJ จะรู้เกี่ยวกับการเปลี่ยนแปลงใด ๆ ที่เกิดขึ้นสิ่งนี้ทำให้ฉันประหลาดใจและใช้เวลาคิดดูดังนั้นฉันจึงคิดว่าฉันจะแบ่งปัน


6

ตรวจสอบโมดูลคลาสของคุณ : ฉันพบปัญหานี้กับ Intellij: ฉันมีโปรเจค maven หลายโมดูลปัญหาคือฉันใช้คลาสที่ไม่มีโมดูลอยู่ในการกำหนดค่าดังนั้นปัญหาของฉันได้รับการแก้ไขโดยการตั้งค่าโมดูลที่เหมาะสม ( "แก้ไขการกำหนดค่า" -> "ใช้คลาสของโมดูล")

ขอให้สิ่งนี้ช่วยคุณได้


ทำงานให้ฉันด้วย ขอบคุณ! มีบางอย่างผิดพลาดเมื่อทำการติดตั้งปลั๊กอิน IntelliJ หรือ Scala หลังจากนั้นคุณจะได้รับปัญหาที่แปลกประหลาดนี้ น่ารำคาญและเสียเวลามาก หวังว่า JetBrains จะพบวิธีแก้ไข
André van Delft

6

ฉันต้องทำเครื่องหมายโฟลเดอร์ "src" เป็น "แหล่ง" หลังจากรีสตาร์ท IntelliJ และสร้างโครงการใหม่ฉันสามารถเรียกใช้โครงการโดยไม่มีปัญหาเพิ่มเติม (ดูภาพหน้าจอ ) แก้ไข: คุณสามารถเข้าถึงแท็บ "โครงสร้างโครงการ" ผ่านไฟล์ -> โครงสร้างโครงการหรือกด Ctrl + Shift + Alt + S


1
หากคุณ (เช่นฉัน) ไม่มีแท็บ 'แหล่งที่มา' คุณควรเพิ่มโมดูลใหม่ (คลิกที่สีเขียว +) และเลือกโฟลเดอร์หลักของคุณเป็นแหล่งที่มา ไม่มีอะไรจะถูกเขียนทับและโฟลเดอร์ src จะเปลี่ยนเป็นสีน้ำเงิน
john ktejik

5

เปิดแท็บโมดูล (กด Ctrl + Shift + Alt + S) ฉันมีสองโมดูลในหนึ่งโครงการ ฉันแก้ไขปัญหาหลังจากลบโมดูลสำรองที่สอง (ดูภาพหน้าจอ)ป้อนคำอธิบายรูปภาพที่นี่


4

ฉันประสบปัญหาดังกล่าวเมื่อคลาสอยู่ในโฟลเดอร์เริ่มต้นเช่นเมื่อคลาสไม่ประกาศแพ็คเกจ

ดังนั้นฉันเดาว่าการใช้คำสั่งแพ็คเกจ (เช่น. package org.me.mypackage;) ที่ด้านบนของคลาสควรแก้ไข


ฉันจะทำซ้ำบรรทัดของรหัสนั้นได้อย่างไร .. ฉันจะแก้ไขได้อย่างไรในกรณีที่ฉันต้อง ??
Mailman ที่สับสน

เพียงใช้ชื่อแพ็คเกจของคุณเองเช่นนี้:package org.confused.mailman;
Hakan Serce

คำสั่ง package ต้องตรงกับที่ IDE ใส่ไฟล์ไว้ หาก IDE ไม่ได้วางไฟล์ไว้ใน sourceBase / org/confused/mailmanดังนั้นการเพิ่มแพ็กเกจบรรทัดนั้นจะไม่ช่วย
QuantumMechanic

ฉันเดาว่า IDE จะให้คำแนะนำเกี่ยวกับเรื่องนี้และแก้ไขปัญหานี้โดยอัตโนมัติหากเลือกการแก้ไขที่แนะนำ
Hakan Serce

ไม่ช่วย: / .. IDE ดูเหมือนจะไม่ใส่ใจกับการเปลี่ยนแปลงใด ๆ ที่ฉันทำ .. มันโยนข้อผิดพลาดข้างต้นและนั่งหลังและผ่อนคลาย
Mailman สับสน

3

ไฟล์> โครงสร้างโครงการ> โมดูล> ทำเครื่องหมายโฟลเดอร์ "src" เป็นแหล่งที่มา สิ่งนี้ควรแก้ไขปัญหา ตรวจสอบว่ามีการเลือกภาษาล่าสุดเพื่อไม่ให้คุณต้องเปลี่ยนรหัสหรือทำการเปลี่ยนแปลงการกำหนดค่า ป้อนคำอธิบายรูปภาพที่นี่


2

ในกรณีของฉันดูเหมือนว่าปัญหาจะเกี่ยวข้องกับการอัพเกรด IntelliJ เมื่อฉันทำสิ่งนี้ฉันเขียนทับไฟล์จาก IntelliJ เก่าด้วยไฟล์จาก IntelliJ ใหม่ (ชุมชน 2017 ถึงชุมชน 2018) หลังจากนั้นโครงการทั้งหมดของฉันก็พัง ฉันลองทุกอย่างในชุดข้อความนี้และไม่ทำงานเลย ฉันพยายามอัปเกรดเกรดเป็นเวอร์ชันล่าสุด (4 ถึง 4.8) และนั่นไม่ได้ผล สิ่งเดียวที่ใช้ได้ผลสำหรับฉันคือการลบทั้งโฟลเดอร์ IntelliJ และติดตั้งใหม่ โครงการทั้งหมดของฉันทำงานหลังจากนั้น


ดูเหมือนว่านี่มันจริง ฉันใช้ intellij แบบพกพาดังนั้นฉันจึงเปลี่ยนชื่อโฟลเดอร์หลักเหมือนidea\binเป็นidea_old\binและเปลี่ยนชื่อโฟลเดอร์การตั้งค่า%user%\usernameซึ่ง.IntelliJIdea2018.2จะต้อง.IntelliJIdea2018.2_oldแตกไฟล์ intellij zip อีกครั้งเพื่อเริ่มใช้เป็นเวอร์ชันพกพาใหม่ (นี่คือเวอร์ชั่น 2018.2.1) กับ Spring แอปสำหรับบูตของโมดูลที่แยกกันหลายโมดูล (ไม่ได้เชื่อมโยงใน pom.xml พาเรนต์เดียว) แต่ละแอปเป็นบู๊ทสปริงที่มี pom.xml และ voila ของตัวเอง !!! ทำงานได้ทั้งหมดสร้างโฟลเดอร์เป้าหมายรวบรวมข้อมูลก่อนเรียกใช้ผ่านแผงควบคุมการบูตฤดูใบไม้ผลิ
Anddo

2

ทำเครื่องหมายไดเรกทอรีเป็นไดเรกทอรีต้นทาง เปิดผ่าน Ctrl + Shift + Alt + S

ป้อนคำอธิบายรูปภาพที่นี่


1

สำหรับฉัน - ฉันลองใช้ตัวเลือกบางอย่างด้านบนไม่ทำงาน จากนั้นฉันเพิ่งเปลี่ยนชื่อชั้นแอปพลิเคชันของฉันและนั่นอาจบังคับให้ intelliJ สร้าง jar ใหม่และข้อความแสดงข้อผิดพลาดเริ่มเปลี่ยนไป จากนั้นฉันเปลี่ยนชื่อมันกลับมาและใช้งานได้


1

ฉันได้ลองแฮ็กทั้งหมดที่แนะนำที่นี่ - ไม่มีประโยชน์ ในตอนท้ายฉันเพิ่งสร้างแอปพลิเคชั่น Maven ใหม่และคัดลอกด้วยตนเองลงไปทีละตัว - ไฟล์ pom.xml และ java และทรัพยากร ทุกอย่างทำงานได้ในขณะนี้ ฉันใหม่สำหรับ IntelliJ และไม่รู้สึกประทับใจเลย แต่มันง่ายเพียงใดที่จะทำให้มันอยู่ในสภาวะที่ไม่มั่นคง


คุณต้องปิด Intellij ลบโฟลเดอร์ .idea (อาจเป็นไฟล์ที่ซ่อนอยู่); จากนั้นเปิดโฟลเดอร์อีกครั้งใน Intellij - มันจะกำหนดค่าเริ่มต้นให้กับโปรเจค Intelli ใหม่โดยอ้างอิงจากการกำหนดค่า Maven / Grade
Jeremy

1

ป้อนคำอธิบายรูปภาพที่นี่

modules.xml ที่มีเนื้อหาผิดฉันไม่ทราบว่ามีความสำคัญกับ IDEA ของฉันอย่างไร


1

ฉันได้รับไฟล์. JAVA จำนวนมากจากที่อื่นและไม่สามารถหาวิธีที่จะทำให้พวกเขาทำงานใน IDE ใด ๆ ในท้ายที่สุดผมต้องไปที่บรรทัดคำสั่งที่ไฟล์ Main.JAVA javac Main.javaได้และเรียกใช้ สิ่งนี้สร้างไฟล์. CLASS จำนวนมาก จากนั้น IDE ก็สามารถคิดได้ว่าจะทำอย่างไร


1

ผมได้รับข้อผิดพลาดนี้เมื่อใช้Scala / SBT IntelliJ ไม่สามารถหาชั้นเรียนหลักได้แม้ว่าทุกอย่างจะถูกตั้งค่าอย่างถูกต้อง โซลูชันของฉัน: ลบ<user>/.sbt/<version>/plugins/targetโฟลเดอร์จากนั้นเริ่ม IntelliJ ใหม่


1

ฉันกำลังใช้ IntelliJ กับ Spring และชั้นเรียนหลักของฉันอยู่ใน JAR ฉันต้องทำเครื่องหมาย 'รวมการพึ่งพากับขอบเขต "ที่ให้ไว้" ในไดอะล็อกการกำหนดค่า Run / Debug


1

เราอยู่ที่โครงสร้างไฟล์ / โครงการ .. คำตอบอาจเป็น:

โฟลเดอร์ที่ระบุว่า "content root" จำเป็นต้องมีโฟลเดอร์ลูกที่มีรหัสอยู่ รวมทั้งค้นหาปุ่มที่ทำเครื่องหมายรหัสว่าถูกยกเว้นและไม่ได้ เพื่อไม่ให้สับสนกับ tickbox ที่ระบุว่าแยกออกโดยไม่บอกในเฟสใดและอะไรคือ ** คอมไพเลอร์ไม่รวมหรือไม่รวมรันไทม์ คุณถึงวาระที่จะทดสอบและจำนวนมาก ดังนั้นไม่มีช่องทำเครื่องหมายยกเว้นไอคอนและสี

ในฐานะที่เป็นความคิดเราจำเป็นต้องถอดรหัสว่ามันเป็นความคิดเดิมที่ทำงาน พวกเขาไม่เคยให้มันทำงานตั้งแต่แรกและเริ่มเพิ่มสิ่งต่าง ๆ ในสไตล์การคำนวณก่อนกำหนด เป็นเวลาหลายปีและคุณไม่สามารถคาดหวังการปรับปรุงใด ๆ แต่เพื่อรักษาเราสามารถแฮ็ควิธีที่จะทำให้มันถูกต้องทุกครั้ง


1

อีกสิ่งหนึ่งที่คุณสามารถตรวจสอบได้ที่นี่คือคำสั่งจริงที่กำลังส่งผ่านไปยัง JVM และตรวจสอบให้แน่ใจว่ามันดูดี เลื่อนไปที่ด้านบนสุดของคอนโซล Run ของคุณซึ่งควรเป็นบรรทัดแรก

ช่องว่างในฟิลด์ Run Configuration VM Optionsจะทำให้คำสั่งเริ่มต้นแอปผิดรูปแบบและอาจส่งผลให้เกิดข้อความแสดงข้อผิดพลาดนี้

-DsomeArgument="arg with space must be quoted"

ขอบคุณมาก! สิ่งนี้ใช้ได้สำหรับฉัน !!
Jcoder

0

อธิบายอย่างละเอียดในโซลูชันของ Brad Turek ... หนึ่งในเท็มเพลตโครงการเริ่มต้น IntelliJ Java คาดว่าไฟล์ชื่อ Main จะกำหนดคลาสจุดเข้าหลักวิธีหลักและหลัก () หากวิธีการนั้นมีอยู่ในไฟล์อื่น (และคลาส) ให้เปลี่ยนกำหนดค่าการเรียกใช้ :

เรียกใช้หน้าต่างการกำหนดค่า

  1. เมื่อโครงการเปิดใน IntelliJ ให้ใช้Run: Edit Configurations ... เพื่อเปิดหน้าต่างการกำหนดค่าบิลด์
  2. หากรายการสำหรับคลาสหลักไม่แสดงรายการชื่อไฟล์ของคุณที่มีคลาสซึ่งเปิดเผย หลัก ()วิธีการป้อนให้ป้อนชื่อไฟล์ที่ถูกต้อง (การกำหนดค่าในภาพไม่ถูกต้องซึ่งเป็นสาเหตุที่เป็นสีแดงในแผงการตั้งค่า)
  3. ของฉัน() หลักวิธีการเข้าอยู่ในชั้นเรียน (และไฟล์) ScrabbleTest ดังนั้นการเปลี่ยนคลาสหลัก:เป็นScrabbleTestแก้ไขข้อผิดพลาดรันไทม์

ดังที่คนอื่น ๆ สังเกตเห็นคุณต้องReBuildโดยใช้การกำหนดค่าใหม่ ฉันกำลังใช้แพ็คเกจ แต่ดูเหมือนจะไม่ได้สร้างความแตกต่างให้กับ IME หวังว่านี่จะช่วยได้


0

ในกรณีของฉันใน build.gradle ของโมดูลการมอบหมาย mainClassName ต้องระบุชื่อคลาสที่ผ่านการรับรองอย่างสมบูรณ์เช่น ตามที่ระบุไว้เป็นชื่อแพ็กเกจในไฟล์ซอร์สของคลาสหลัก


0

เพียงแค่สร้างโครงการใหม่ (CTRL + F9) และตรวจสอบอีกครั้ง (แก้ไขการกำหนดค่า) หากคุณมีการตั้งค่าคลาสหลักอย่างถูกต้องและโมดูล (ถ้ามี)


0

วิธีแก้ปัญหาอย่างง่ายคือไปที่โฟลเดอร์สำรองในบรรทัดคำสั่งที่โฟลเดอร์รูทของโครงการ คุณควรติดตั้ง SBT ในเครื่องของคุณ

หากคุณติดตั้ง sbt แล้วโปรดเรียกใช้คำสั่ง "sbt package" ซึ่งจะทำการคอมไพล์โปรเจ็กต์ใหม่หากประสบความสำเร็จกลับมาที่ intelliJ มันจะทำงานได้


ยินดีต้อนรับสู่ SO! เมื่อคุณตอบกลับคำตอบให้แน่ใจว่าถูกต้องหรือไม่ลองอธิบายให้ฟังหน่อย
David García Bodego

0

ในกรณีของฉันฉันมีอาร์กิวเมนต์ vm ที่ค่อนข้างยาว การแปลงอาร์กิวเมนต์เหล่านี้ (เมื่อทำได้) กับตัวแปรสภาพแวดล้อมได้แก้ไขปัญหาให้ฉัน


คุณไม่สามารถเว้นช่องว่างในตัวเลือก VM ของคุณเว้นแต่ว่าคุณใส่ "เครื่องหมายคำพูด" รอบ ๆ args
อ๋อ

0

ในกรณีของฉันแอปพลิเคชันทำงานได้ดีเมื่อรหัสเริ่มต้นอยู่ภายใต้ไดเรกทอรี / src ภายใต้โครงการ ต่อมาฉันเพิ่ม / main / java directory หลัง / src จากนั้นเกิดข้อผิดพลาด "ไม่พบหรือโหลดคลาสหลัก ... " ในเวลานั้นคุณไม่สามารถเพิ่ม /src/main/java/YourMain.java ในการกำหนดค่าการรัน สิ่งที่ฉันทำคือการลบการกำหนดค่าการเรียกใช้จากนั้นคลิกขวาที่โครงการ -> เปิดการตั้งค่าโมดูล (หรือ F4 หลังจากคลิกที่แผงโครงการ) -> การตั้งค่าโครงการ -> ลบโมดูล (x) รูทเนื้อหาเก่าและ + เพิ่มเนื้อหารูท เลือก / src / main / java สร้างโครงการใหม่และทำงาน


0

คุณอาจระบุแพคเกจที่ไม่ถูกต้องและลำดับชั้นของแพคเกจจะไม่ถูกต้อง ดูด้านล่าง

ป้อนคำอธิบายรูปภาพที่นี่

IDE จะเน้นเส้นทางที่ผิดในกรณีนั้น


0

ในกรณีของฉันมันเป็นโครงการ maven ฉันนำเข้า Maven อีกครั้ง (คลิกขวาที่ไฟล์pom.xmlและคลิกนำเข้าใหม่ ) ที่ใช้งานได้ทันที

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.