ฉันได้รับข้อความเตือนเวลา Build!
คำเตือน: [ตัวเลือก] เส้นทางคลาส bootstrap ไม่ได้ตั้งร่วมกับ -source 1.5
ฉันจะแก้ไขได้อย่างไร
<version>[1.7.0,1.7.0-79]</version>ซึ่งอย่างน้อยแบ่งการสร้างด้วยข้อความที่ชัดเจนมากกว่า ทดสอบด้วยข้อความที่คลุมเครือ
ฉันได้รับข้อความเตือนเวลา Build!
คำเตือน: [ตัวเลือก] เส้นทางคลาส bootstrap ไม่ได้ตั้งร่วมกับ -source 1.5
ฉันจะแก้ไขได้อย่างไร
<version>[1.7.0,1.7.0-79]</version>ซึ่งอย่างน้อยแบ่งการสร้างด้วยข้อความที่ชัดเจนมากกว่า ทดสอบด้วยข้อความที่คลุมเครือ
คำตอบ:
จากบล็อกโพสต์ :
ในการใช้ javac จาก JDK N เพื่อข้ามคอมไพเลอร์เป็นเวอร์ชันแพลตฟอร์มที่เก่ากว่าวิธีปฏิบัติที่ถูกต้องคือ:
- ใช้การตั้งค่า -source ที่เก่ากว่า
- ตั้ง bootclasspath ให้คอมไพล์กับ rt.jar (หรือเทียบเท่า) สำหรับแพลตฟอร์มเก่า
หากขั้นตอนที่สองไม่ได้ดำเนินการ javac จะใช้กฎภาษาเก่าร่วมกับห้องสมุดใหม่ซึ่งอาจส่งผลให้ไฟล์คลาสที่ไม่ทำงานบนแพลตฟอร์มเก่าเนื่องจากการอ้างอิงไปยังวิธีการที่ไม่มีอยู่สามารถรวม
การใช้ bootclasspath
javac -bootclasspath /usr/lib/jvm/java-7-oracle/jre/lib/rt.jar \
-source 1.7 Main.java
บนระบบ UNIX ให้ค้นหาการrt.jarใช้:
locate -r '/rt.jar$'
ตั้งค่าJAVA_HOMEให้rt.jarตั้งอยู่ที่$JAVA_HOME/jre/lib/rt.jarจากนั้น:
javac -source 1.7 -bootclasspath "$JAVA_HOME/jre/lib/rt.jar" Main.java
ทดสอบกับ Ubuntu 14.04 สำหรับ Oracle Java 7 และ 8
ปัจจุบันฉันใช้ Netbeans IDE 8.0.2 กับ JDK 1.8 บน Linux Mint 17.1 ซึ่งมี java -version = 1.7.0_65 ดังนั้นเพื่อให้สามารถเรียกใช้ไฟล์ JAR ฉันต้องตั้งค่า myProject> Properties> Source / Binary Format: JDK 7 อย่างไรก็ตามเมื่อ build (myProject> Clean and Build) ฉันได้รับคำเตือนที่คล้ายกัน: คำเตือน: [ตัวเลือก] เส้นทางคลาส bootstrap ไม่ได้ตั้งค่า ร่วมกับ -source 1.7
ทางออกคือการเพิ่มแพลตฟอร์ม Linux Mint JDK1.7 ลงในรายการแพลตฟอร์ม Netbeans
สิ่งนี้สามารถทำได้โดยไปที่ myProject> Properties> Libraries และคลิกปุ่ม Manage Platforms ... จากนั้นในหน้าต่าง Java Platform Manager คลิกเพิ่มแพลตฟอร์ม ... และเลือก: Java Standard Edition คลิกถัดไปและเรียกดู / usr / lib / jvm / java-7-openjdk-amd64 (หรืออะไรก็ตามที่เป็นที่ตั้งของรุ่น JDK 1.7 ) ชื่อแพลตฟอร์มจะถูกตั้งค่าเป็น JDK1.7 เพียงคลิกเสร็จสิ้นและทำเสร็จแล้ว
ตอนนี้คุณสามารถเลือกแพลตฟอร์ม Java ในคุณสมบัติโครงการ โดยการเลือก JDK1.7 และเรียกใช้ Clean and Build: ไม่มีคำเตือนเพิ่มเติม :-)
คำเตือนสามารถปิดการใช้งานด้วยตัวเลือกย่อย JDK 7 ใหม่ภายในตระกูล -Xlint, -Xlint: -options เช่น
$ javac -source 1.5 -Xlint: -options example.java
แหล่งที่มา: https://blogs.oracle.com/darcy/entry/bootclasspath_older_source
และ
http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/javac.html#xlintwarnings
คำเตือนที่สามารถเปิดใช้งานหรือปิดการใช้งานด้วยตัวเลือก -Xlint
เปิดใช้งานชื่อคำเตือนด้วยตัวเลือก -Xlint: name โดยที่ name เป็นชื่อคำเตือนอย่างใดอย่างหนึ่ง คุณสามารถปิดใช้งานชื่อคำเตือนด้วยตัวเลือก -Xlint: -name: ...
ตัวเลือกเตือนเกี่ยวกับปัญหาที่เกี่ยวข้องกับการใช้ตัวเลือกบรรทัดคำสั่ง ดูตัวอย่างการรวบรวมข้ามตัวอย่างของคำเตือนประเภทนี้
ตรวจสอบให้แน่ใจว่าเวอร์ชัน jdk ของคุณและซอร์สโค้ดคอมไพเลอร์ของ Java เหมือนกัน ตัวอย่างเช่นถ้าคุณกำลังใช้ maven และมีการตั้งค่าโครงการโดยใช้ JDK 9 แล้วการติดตาม pom snippet จะผ่านการเตือนข้างต้น
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
...
</configuration>
</plugin>
การแก้ไขเวอร์ชันต้นทาง / ปลายทางเป็น 9 จะแก้ไขคำเตือนดังต่อไปนี้
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>9</source>
<target>9</target>
...
</configuration>
</plugin>
ดาวน์โหลด JDK (ตามคำเตือนเป็นลายลักษณ์อักษร) -> ติดตั้ง
คลิกขวาที่โครงการของคุณ -> คุณสมบัติ -> ไลบรารี -> แพลตฟอร์ม Java (เพิ่ม JDK ที่ติดตั้งของคุณ) -> ตกลง