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?


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>

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".


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"
    }
}

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>();

Vielen Dank, das hat mir geholfen!
Farb

14

Es gibt einen anderen Weg für Gradle:

compileJava {
    options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}

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.


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.


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" 
}

2

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

compileJava.options.compilerArgs = ['-Xlint:unchecked','-Xlint:deprecation']

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.


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".

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.