Wie kompiliere ich mit -Xlint: deaktiviert?

80

Ich erhalte eine Nachricht, wenn ich meinen Code kompiliere:

Note: H:\Project2\MyGui2.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

Wie kompiliere ich mit -Xlint:unchecked?

Dave Fisher
quelle
1
Kompilieren Sie in der Befehlszeile? Wenn ja, fügen Sie das -Xlint:uncheckedzur Befehlszeile hinzu, die Sie ausführen, genau wie in der Nachricht angegeben.
101100
hängt davon ab, wie Sie Ihren Code ausführen. Ist es von Eclipse? Befehlszeile?
Boaz
Was hast du getan? Ich habe diese Fehlermeldung noch nie gesehen ...
AlexR

Antworten:

52

Geben Sie es in der Befehlszeile für javac an:

javac -Xlint: deaktiviert

Oder wenn Sie Ant verwenden, ändern Sie Ihr Javac-Ziel

  <javac ...>
    <compilerarg value="-Xlint"/>
  </javac> 

Wenn Sie Maven verwenden, konfigurieren Sie dies in der maven-compiler-plugin

<compilerArgument>-Xlint:unchecked</compilerArgument>
Sudocode
quelle
Ich habe Maven 3, Modell 4.0 - Das <compilerArgument>geht <configuration>nicht unter das Element <compilerArguments> . Wie dumm von mir.
wird
Und was ist mit Kompilieren in AOSP? Was soll ich zur Android.mk-Datei hinzufügen?
Dr.jacky
48

Für IntelliJ 13.1 gehen Sie zu File-> Settings-> Project Settings-> Compiler-> Java Compilerund auf der rechten Seite zur Additional command line parametersEingabe "-Xlint:unchecked".

Brian Burns
quelle
Vielen Dank. Für 13.1 Community Edition befindet es sich jedoch unter Datei - Einstellungen - Compiler - Java Compiler, und das Feld befindet sich unten.
RenniePet
7
Für 14.0.3 wurde diese Einstellungsseite verschoben zu: Datei - Einstellungen - Erstellen, Ausführen, Bereitstellen - Compiler - Java Compiler.
Csauve
1
Nicht auf AndroidStudio, es scheinen Compiler-Optionen für jeden Compiler bereitgestellt zu werden , nicht nur für Java. Das Bearbeiten von build.gradle funktioniert.
Alex Cohn
In Android Studio finden Sie die Compileroptionen unter Datei -> Neue Projekteinstellungen -> Einstellungen für neue Projekte . Sie scheinen jedoch nicht auf ein bestehendes Projekt anwendbar zu sein.
JJD
26

Im Gradle-Projekt können Sie diesen Kompilierungsparameter folgendermaßen hinzufügen:

gradle.projectsEvaluated {
    tasks.withType(JavaCompile) {
        options.compilerArgs << "-Xlint:unchecked"
    }
}
Xianlinbox
quelle
4
In den letzten Gradle-Versionen wurde der Aufgabentyp Compilein umbenannt JavaCompile, also ist estasks.withType(JavaCompile) { ... }
obecker
1
Ich würde hinzufügen, dass dies in gehen sollteallprojects { // ... }
Borzh
21

Ich weiß, dass es komisch klingt, aber ich bin mir ziemlich sicher, dass dies Ihr Problem ist:

Irgendwo in MyGui.java verwenden Sie eine generische Sammlung, ohne den Typ anzugeben. Wenn Sie beispielsweise irgendwo eine ArrayList verwenden, gehen Sie folgendermaßen vor:

List list = new ArrayList();

Wann sollten Sie dies tun:

List<String> list = new ArrayList<String>();
Andrew Rasmussen
quelle
Vielen Dank, das hat mir geholfen!
Farb
14

Es gibt einen anderen Weg für Gradle:

compileJava {
    options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
Tarn
quelle
Dies wirkt sich beispielsweise nicht auf die Tests aus.
Trilarion
2
Für Android Studio scheint dies einen etwas anderen Ansatz zu erfordern:tasks.withType(JavaCompile) { options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" }
Alex Cohn
3
für Android Studio 2.1.3 zu Projekt build.gradle hinzufügen allprojects { repositories { jcenter() } gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" } } }
tarn
3

Schreiben Sie in CMD:

javac -Xlint:unchecked MyGui2.java

Es wird die Liste der nicht aktivierten oder unsicheren Vorgänge angezeigt.

Himanshu Aggarwal
quelle
3

Wenn Sie mit einer IDE wie NetBeans arbeiten, können Sie die Xlint:unchecked Compileroption in den Eigenschaften Ihres Projekts angeben .

Gehen Sie einfach zum Projektfenster, klicken Sie mit der rechten Maustaste in das Projekt und klicken Sie dann auf Properties.

Suchen Sie im angezeigten Fenster nach der CompilingKategorie und Additional Compiler Optionslegen Sie im Textfeld die Xlint:uncheckedOption fest.

Daher bleibt die Einstellung bei jedem Kompilieren des Projekts festgelegt.

Josue
quelle
3

Fügen Sie für Android Studio Folgendes zu Ihrer build.gradleDatei der obersten Ebene innerhalb des allprojectsBlocks hinzu

tasks.withType(JavaCompile) {
    options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" 
}
Verkabelung
quelle
2

Es gibt eine sauberere Möglichkeit, die Gradle-Compiler-Argumente anzugeben:

compileJava.options.compilerArgs = ['-Xlint:unchecked','-Xlint:deprecation']
Jim H.
quelle
Dies kann kürzer sein, ist aber nicht sauberer . Zum einen werden vorhandene Optionen, die an anderer Stelle festgelegt wurden, überschrieben. Zum anderen funktioniert der Affekttest nicht, wie in den Kommentaren unter Tarns Antwort angegeben. Tun Sie dies nicht, sondern verwenden Sie stattdessen die Antwort von xianlinbox.
Konrad Rudolph
1

andere Möglichkeit zum Kompilieren mit -Xlint: Deaktiviert über die Befehlszeile

javac abc.java -Xlint:unchecked

Es werden die ungeprüften und unsicheren Warnungen angezeigt.

deepak jaiswal
quelle
0

Zu Ihrer Information, diese Einstellungen wurden für IntelliJ 15 geändert, neu und verbessert für noch tiefere Bestattungen!

Jetzt ist es: Datei> Andere Einstellungen> Standardeinstellungen> 'Erstellen, Ausführen, Bereitstellen'> Compiler> Java-Compiler

Schreiben Sie unter Zusätzliche Befehlszeilenparameter wie zuvor "-Xlint: nicht aktiviert".

HAKitz
quelle