ไม่สามารถเลือกคลาสเป็นคลาสหลักใน IntelliJ


106

ฉันมีโปรเจ็กต์ Java ใน IntelliJ ซึ่งฉันเพิ่งเพิ่มไฟล์จำนวนมากในลำดับชั้นของโฟลเดอร์ที่ซ้อนกัน ไฟล์เหล่านี้จำนวนมากเป็นการทดสอบและมีวิธีการหลักดังนั้นฉันควรจะเรียกใช้งานได้ อย่างไรก็ตามฉันคิดไม่ออกว่าจะทำอย่างไร

ฉันเพิ่งเริ่มใช้ IntelliJ และไฟล์ก่อนหน้านี้ได้แสดงในลำดับชั้นของโปรเจ็กต์พร้อมด้วยสัญลักษณ์ที่สอดคล้องกับ "คลาส Java ที่มีการประกาศเมธอด main ()" แต่ในสถานการณ์นี้จะแสดงสัญลักษณ์ที่ตรงกับ "คลาส Java ที่อยู่นอกรูทต้นทาง"

ฉันจะรวบรวมและเรียกใช้ไฟล์เหล่านี้ได้อย่างไร


2
สำหรับใครก็ตามที่มาที่นี่ด้วยปัญหาเดียวกัน แต่ไม่มีปัญหา "ต้นทาง" - ความสามารถในการรันและตัวบ่งชี้ "คลาสหลัก" หายไปเมื่อฉันนำเข้าโดยไม่ได้ตั้งใจcom.sun.org.apache.xpath.internal.operations.String- ยังคิดไม่ออกว่าทำไมมันถึงเกิดขึ้น! (IDEA 2018.1, JDK 8, Maven)
Janaka Bandara

คำตอบ:


66

เอกสารที่คุณเชื่อมโยงมีคำตอบในลิงก์ที่เกี่ยวข้องกับ "คลาส Java ที่อยู่นอกรูทต้นทาง" กำหนดค่าแหล่งที่มาและรากการทดสอบของคุณและควรใช้งานได้

https://www.jetbrains.com/idea/webhelp/configuring-content-roots.html

เนื่องจากคุณระบุว่านี่คือการทดสอบคุณจึงควรใช้การทดสอบที่ทำเครื่องหมายเป็นรูทแหล่งทดสอบแทนรูทต้นทาง


1
ตรวจสอบให้แน่ใจว่าคุณตั้งค่าการอ้างอิงโมดูลของคุณอย่างถูกต้อง ทำเครื่องหมายโมดูลในโครงสร้างโครงการและ 'F4' เป็นคีย์เริ่มต้นเพื่อเปิดการตั้งค่าโมดูล (อย่างน้อยที่สุดใน Linux) (หรือคลิกขวาแล้วเลือก 'เปิดการตั้งค่าโมดูล') หวังว่าสิ่งนี้จะช่วยได้อีกเล็กน้อย: jetbrains.com/idea/webhelp/…
trappski

ใช่แล้วการอ้างอิงช่วยแก้ปัญหาของฉันได้ในที่สุด ty.
CE

140

เลือกโฟลเดอร์ที่มีโครงสร้างแพ็กเกจของคลาสเหล่านี้คลิกขวาแล้วเลือก "Mark Directory as -> Source Root"


สิ่งนี้ทำตามที่ฉันขอ แต่ตอนนี้ไม่สามารถแก้ไขคำสั่งนำเข้าได้ ข้อผิดพลาดอื่น ๆ ก็ปรากฏขึ้นเช่นกัน ไอเดีย?
CE

ตัวอย่างเช่นขอให้ฉันนำหน้าวิธีการด้วย "odeToJava.modules" แล้วบ่นว่าไม่สามารถแก้ไข odeToJava ได้
CE

คุณจะไปที่เมนูที่ให้คุณทำสิ่งนี้ได้อย่างไร? คุณดูไดเรกทอรีโครงการและไฟล์ในมุมมองโครงการ (alt + 1) จากนั้นคลิกขวาที่โฟลเดอร์ตามคำแนะนำของ OP
James T.

ฉันได้ทำสิ่งนี้แล้ว แต่อนุญาตให้ฉันเลือกไฟล์เกรดเท่านั้นไม่ใช่ตัวเลือก JAVA หลัก
Oliver Dixon

สิ่งนี้จำเป็นหลังจากอิมพอร์ตโปรเจ็กต์ gradle หลังจากเมธอดหลักของคลาส java ไม่มีไอคอนรันในรางถัดจากเมธอดหลัก
เบสเวฟ

3

นี่คือขั้นตอนที่สมบูรณ์สำหรับ IDEA IntelliJ 2019.3:

  1. ไฟล์> โครงสร้างโครงการ

  2. ภายใต้การตั้งค่าโครงการ> โมดูล

  3. ภายใต้แท็บ "แหล่งที่มา" คลิกขวาที่โฟลเดอร์ "src" และเลือก "แหล่งที่มา"

  4. ใช้การเปลี่ยนแปลง

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