คำถามติดแท็ก java-11

30
วิธีแก้ไข java.lang.NoClassDefFoundError: javax / xml / bind / JAXBException ใน Java 9
ฉันมีรหัสบางส่วนที่ใช้คลาส JAXB API ซึ่งได้รับการจัดให้เป็นส่วนหนึ่งของ JDK ใน Java 6/7/8 เมื่อฉันเรียกใช้รหัสเดียวกันกับ Java 9 ที่รันไทม์ฉันได้รับข้อผิดพลาดที่ระบุว่าไม่พบคลาส JAXB คลาส JAXB ได้รับการจัดให้เป็นส่วนหนึ่งของ JDK ตั้งแต่ Java 6 ดังนั้นทำไม Java 9 จึงไม่พบคลาสเหล่านี้อีกต่อไป
845 java  jaxb  java-9  java-11  java-10 

6
จะติดตั้ง OpenJDK 11 บน Windows ได้อย่างไร
ในอดีต Oracle เคยเผยแพร่โปรแกรมติดตั้งที่ปฏิบัติการได้สำหรับ Windows ซึ่งจะ: คลายไฟล์ เพิ่มรีจิสตรีคีย์เพื่อระบุเวอร์ชันและพา ธ ที่ติดตั้ง เพิ่ม JRE ไปยัง PATH ของระบบ ลงทะเบียนโปรแกรมถอนการติดตั้งด้วย Windows ในฐานะของ Java 11 Java เวอร์ชันฟรีของOracle ( Oracle OpenJDK ) ดูเหมือนจะไม่มีตัวติดตั้ง มันเป็นเพียงไฟล์ซิปที่มีไบนารี เราควรจะติดตั้ง OpenJDK 11 บน Windows ด้วยวิธีใดเนื่องจากการผสานรวมดังกล่าวไม่ได้อยู่ที่นั่นอีกต่อไป? พวกเขาไม่จำเป็นเหรอ?
269 windows  java-11 

3
ทำไมอิมเมจฐาน Java 11 จึงมีขนาดใหญ่? (OpenJDK: 11-JRE บาง)
Java 11 ได้รับการประกาศให้เป็นรุ่น LTS ล่าสุด ดังนั้นเราจึงพยายามที่จะเริ่มบริการใหม่ ๆ โดยใช้ Java เวอร์ชันนี้ อย่างไรก็ตามอิมเมจ Docker พื้นฐานสำหรับ Java 11 มีขนาดใหญ่กว่าเทียบเท่าสำหรับ Java 8: openjdk:8-jre-alpine: 84 MB openjdk:11-jre-slim: 283 MB (ฉันกำลังพิจารณาเฉพาะOpenJDK อย่างเป็นทางการและรูปภาพที่มีน้ำหนักเบาที่สุดสำหรับแต่ละเวอร์ชัน Java) Deeper ขุดค้นพบสิ่งต่าง ๆ ต่อไปนี้: ภาพใช้ภาพฐานopenjdk:11-jre-slim debian:sid-slimสิ่งนี้นำมาซึ่ง 2 ประเด็น: นี่คือใหญ่กว่า 60 MB alpine:3.8 Debiansidรุ่นจะไม่แน่นอน openjdk-11-jre-headlessแพคเกจติดตั้งในภาพเป็น3 ครั้งมีขนาดใหญ่กว่าopenjdk8-jre(ภายในวิ่งหางภาชนะ): openjdk:8-jre-alpine: / # du -hs /usr/lib/jvm/java-1.8-openjdk/jre/lib/ 57.5M /usr/lib/jvm/java-1.8-openjdk/jre/lib/ …
145 java  docker  alpine  java-11 

7
ไม่สามารถรวบรวมโปรเจ็กต์ Java 10 / Java 11 อย่างง่ายด้วย Maven
ฉันมีโครงการ Maven เล็กน้อย: src └── main └── java └── module-info.java pom.xml pom.xml: <groupId>org.example</groupId> <artifactId>example</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>example</name> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> <configuration> <release>10</release> </configuration> </plugin> </plugins> </build> เมื่อฉันสร้างโครงการผ่านmvn -X install -DskipTests=trueมันล้มเหลว: org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:testCompile (default-testCompile) on project example: Execution default-testCompile of goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:testCompile failed. at …

3
ความแตกต่างระหว่างเมธอด String trim () และ strip () ใน Java 11
ท่ามกลางการเปลี่ยนแปลงอื่น ๆ JDK 11 แนะนำ 6 เมธอดใหม่สำหรับคลาส java.lang.String: repeat(int)- ทำซ้ำ String หลาย ๆ ครั้งตามที่intพารามิเตอร์กำหนด lines() - ใช้ Spliterator เพื่อให้เส้นจากสตริงต้นทางอย่างเกียจคร้าน isBlank() - ระบุว่าสตริงว่างหรือมีเฉพาะอักขระช่องว่าง stripLeading() - ลบพื้นที่สีขาวออกจากจุดเริ่มต้น stripTrailing() - ลบพื้นที่สีขาวออกจากส่วนท้าย strip() - ลบช่องว่างสีขาวจากทั้งสองจุดเริ่มต้นและจุดสิ้นสุดของสตริง โดยเฉพาะอย่างยิ่งลักษณะคล้ายกับstrip() trim()ตามวิธีการของบทความนี้ strip*()ออกแบบมาเพื่อ: วิธี String.strip (), String.stripLeading () และ String.stripTrailing () ตัดช่องว่างสีขาว [ตามที่กำหนดโดย Character.isWhiteSpace ()] ทั้งด้านหน้าด้านหลังหรือทั้งด้านหน้าและด้านหลังของสตริงเป้าหมาย String.trim() สถานะ JavaDoc: …
104 java  string  trim  strip  java-11 

8
จะติดตั้ง JDK 11 ภายใต้ Ubuntu ได้อย่างไร
ดังนั้น Java 11 จะออก มีใครทราบวิธีติดตั้ง (OpenJDK จาก Oracle) จากบรรทัดคำสั่งหรือไม่? ฉันต้องการเห็นสิ่งที่เหมือนเดิมสำหรับ Oracle Java 10: sudo add-apt-repository ppa:linuxuprising/java sudo apt-get update sudo apt-get install oracle-java10-installer ป.ล. ในคำถามที่คล้ายกันเสนอคำแนะนำ: sudo apt-get install openjdk-11-jdk ไม่ทำงาน
96 java  ubuntu  java-11 

1
เหตุใดจึงไม่ลบ TreeSet ที่มีเครื่องมือเปรียบเทียบที่กำหนดเองเอารายการที่ใหญ่กว่าออก
ใช้ทั้ง Java 8 และ Java 11 ให้พิจารณาสิ่งต่อไปนี้TreeSetกับตัวString::compareToIgnoreCaseเปรียบเทียบ: final Set<String> languages = new TreeSet<>(String::compareToIgnoreCase); languages.add("java"); languages.add("c++"); languages.add("python"); System.out.println(languages); // [c++, java, python] เมื่อฉันพยายามที่จะลบองค์ประกอบที่แน่นอนที่มีอยู่ในTreeSetมันทำงาน: ทั้งหมดที่ระบุจะถูกลบออก: languages.removeAll(Arrays.asList("PYTHON", "C++")); System.out.println(languages); // [java] แต่ถ้าฉันพยายามที่จะเอาแทนมากขึ้นกว่าที่มีอยู่ในTreeSetโทรไม่เอาอะไรเลย (นี้ไม่โทรตามมา แต่เรียกแทนของตัวอย่างด้านบน): languages.removeAll(Arrays.asList("PYTHON", "C++", "LISP")); System.out.println(languages); // [c++, java, python] ผมทำอะไรผิดหรือเปล่า? ทำไมมันทำเช่นนี้? แก้ไข: String::compareToIgnoreCaseเป็นตัวเปรียบเทียบที่ถูกต้อง: (l, r) -> l.compareToIgnoreCase(r)

1
Paths.get vs Path.of
เท่าที่ฉันสามารถบอกได้Paths.getและPath.ofดูเหมือนว่าจะทำสิ่งเดียวกันเปลี่ยนสตริงหนึ่งหรือมากกว่านั้นเป็นPathวัตถุ เอกสารhttps://docs.oracle.com/javase/8/docs/api/java/nio/file/Paths.html#get-java.lang.String-java.lang.String...-และ https: //docs.oracle.com/en/java/javase/13/docs/api/java.base/java/nio/file/Path.html#of(java.lang.String,java.lang.String ... )ใช้ถ้อยคำเดียวกัน ในความเป็นจริงพวกเขาเหมือนกันหรือไม่ Path.ofถูกนำมาใช้ในภายหลัง การคาดเดา: มันถูกนำมาใช้เพื่อประโยชน์ของFoo.ofสไตล์ที่สอดคล้องกัน ในกรณีดังกล่าวจะได้รับการพิจารณาว่าเหมาะสมกว่าในความสอดคล้อง / ความงาม?
20 java  java-11 

3
JDK 11+ และ Javadoc
Exit code: 1 - javadoc: error - The code being documented uses packages in the unnamed module, but the packages defined in https://docs.oracle.com/en/java/javase/11/docs/api/ are in named modules. มีใครสามารถทำให้ javadoc ทำงานได้โดยไม่ต้องเปลี่ยนเวอร์ชั่นต้นฉบับเป็น 1.8 (ตามที่แนะนำในฟอรัมอื่น) ฉันใช้ JDK v11.0.5 และยังมีปัญหาอยู่ (เช่นเดียวกับ JDK 12+) แก้ไข: ข้อผิดพลาดนี้เกิดจาก maven และโยนโดย maven-javadoc-plugin ฉันไม่สามารถใช้งานกับ JDK 11+ ได้แม้ว่าจะมีการ<source>8</source>กำหนดค่าก็ตาม

8
ลบองค์ประกอบแรก (ที่มีดัชนีศูนย์) จากกระแสตามเงื่อนไข
ฉันมีรหัสต่อไปนี้: Stream<String> lines = reader.lines(); หากสตริงกำปั้นเท่ากับ"email"ฉันต้องการลบสตริงแรกจากกระแส สำหรับสตริงอื่น ๆ จากสตรีมฉันไม่ต้องการการตรวจสอบนี้ ฉันจะปวดร้าวได้อย่างไร PS แน่ใจว่าฉันสามารถแปลงเป็นรายการจากนั้นใช้โรงเรียนเก่าสำหรับวง แต่ต่อไปฉันต้องสตรีมอีกครั้ง
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.