Saya menulis kode pakar pada netbeans yang memiliki sekitar lebih dari 2000 baris. Ketika saya mengompilasinya di netbeans, semuanya baik-baik saja, tetapi jika saya ingin menjalankannya di command line, saya akan mendapatkan kesalahan ini:
generics are not supported in -source 1.3
(use -source 5 or higher to enable generics)
ArrayList<ArrayList<Integer>> list = new ArrayList<ArrayList<Integer>>();
generics are not supported in -source 1.3
(use -source 5 or higher to enable generics)
HashSet<Double> resid_List = new HashSet<Double>(Arrays.asList(resid_val));
generics are not supported in -source 1.3
(use -source 5 or higher to enable generics)
List<Integer> ind_ovlpList = new ArrayList<Integer>(Arrays.asList(ind_ovlp));
generics are not supported in -source 1.3
(use -source 5 or higher to enable generics)
public class ColumnComparator implements Comparator<double[]> {
annotations are not supported in -source 1.3
(use -source 5 or higher to enable annotations)
@Override
Saya mencoba menggunakan Java 1.3.1, kesalahan kompiler , tetapi saya mendapat lebih banyak kesalahan. Saya menemukan dari posting lain bahwa saya harus memodifikasi pom.xml, tetapi saya tidak tahu caranya. Ini pom.xml saya
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>mavenmain</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>mavenmain</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>gov.nist.math</groupId>
<artifactId>jama</artifactId>
<version>1.0.2</version>
</dependency>
</dependencies>
</project>
Akan lebih bagus jika Anda dapat membantu saya.
Jawaban:
Lihat halaman konfigurasi untuk plugin compiler maven:
http://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html
Oh, dan: jangan gunakan Java 1.3.x, versi saat ini adalah Java 1.7.x atau 1.8.x
sumber
maven-compiler-plugin itu sudah ada dalam dependensi hierarki plugin di pom.xml. Periksa di POM Efektif.
Singkatnya, Anda dapat menggunakan properti seperti ini:
Saya menggunakan pakar 3.2.5
sumber
Umumnya Anda tidak ingin menilai hanya
source
versi (javac -source 1.8
misalnya) tetapi Anda ingin menghargai versisource
dantarget
versi (javac -source 1.8 -target 1.8
misalnya).Perhatikan bahwa dari Java 9, Anda memiliki cara untuk menyampaikan informasi dan cara yang lebih kuat untuk kompatibilitas lintas-kompilasi (
javac -release 9
).Maven yang membungkus
javac
perintah menyediakan banyak cara untuk menyampaikan semua opsi standar JVM ini.Bagaimana cara menentukan versi JDK?
Menggunakan
maven-compiler-plugin
ataumaven.compiler.source
/maven.compiler.target
properti untuk menentukansource
dantarget
setara.dan
ekuivalen menurut dokumentasi Maven dari plugin kompiler karena
<source>
dan<target>
elemen - elemen dalam konfigurasi kompiler menggunakan propertimaven.compiler.source
danmaven.compiler.target
jika didefinisikan.Tentang nilai default untuk
source
dantarget
, perhatikan bahwa sejak3.8.0
kompiler pakar, nilai default telah berubah dari1.5
menjadi1.6
.Dari maven-compiler-plugin 3.6 Anda memiliki cara baru untuk menentukan versi Java
Anda dapat menggunakan ini
release
argumen :Anda juga dapat mendeklarasikan hanya properti pengguna
maven.compiler.release
:Tetapi pada saat ini yang terakhir tidak akan cukup karena
maven-compiler-plugin
versi default yang Anda gunakan tidak bergantung pada versi yang cukup baru.release
Argumen Maven menyampaikanrelease
: opsi standar JVM baru yang bisa kita lewati dari Java 9:Cara ini menyediakan cara standar untuk menentukan versi yang sama untuk opsi
source
,target
danbootstrap
JVM.Perhatikan bahwa menentukan itu
bootstrap
adalah praktik yang baik untuk kompilasi silang dan tidak akan sakit jika Anda tidak membuat kompilasi silang juga.Mana cara terbaik untuk menentukan versi JDK?
Untuk Java 8 dan di bawah ini:
Baik
maven.compiler.source
/maven.compiler.target
properti atau menggunakanmaven-compiler-plugin
lebih baik. Tidak ada perubahan dalam fakta karena akhirnya dua cara bergantung pada sifat yang sama dan mekanisme yang sama: plugin compiler maven core.Nah, jika Anda tidak perlu menentukan properti atau perilaku lain selain versi Java di plugin kompiler, menggunakan cara ini lebih masuk akal karena ini lebih ringkas:
Dari Jawa 9:
The
release
argumen (titik ketiga) adalah cara untuk sangat mempertimbangkan jika Anda ingin menggunakan versi yang sama untuksource
dantarget
.sumber
Saya menghadapi masalah yang sama dalam proyek java java sederhana gerhana neon
Tapi saya menambahkan detail di bawah ini di dalam file pom.xml
Setelah klik kanan pada proyek> maven> perbarui proyek (pembaruan kekuatan yang dicentang)
Memutuskan saya untuk menampilkan kesalahan pada proyek
Semoga bermanfaat
Bahasa thans
sumber
sumber