-Xlint : unchecked로 어떻게 컴파일합니까?


84

코드를 컴파일 할 때 메시지가 나타납니다.

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

어떻게 다시 컴파일 -Xlint:unchecked합니까?


1
명령 줄에서 컴파일하고 있습니까? 그렇다면 -Xlint:unchecked메시지에 표시된대로 실행중인 명령 줄에을 추가하십시오 .
101100 2011

코드를 실행하는 방법에 따라 달라집니다. 이클립스에서 온 것입니까? 명령 줄?
Boaz

뭐 했어? 이 오류 메시지를 본 적이 없습니다 ...
AlexR

답변:


54

javac의 명령 줄에서 지정합니다.

javac -Xlint : 선택 취소

또는 Ant를 사용하는 경우 javac 대상을 수정하십시오.

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

Maven을 사용하는 경우 다음에서 구성하십시오. maven-compiler-plugin

<compilerArgument>-Xlint:unchecked</compilerArgument>

나는 3, 모델 4.0 받는다는 한 -은 <compilerArgument>아래에 간다 <configuration>내에 있지 `<compilerArguments> ' 요소입니다. 바보 나.
것이다

그리고 AOSP 내부에서 컴파일은 어떻습니까? Android.mk 파일에 무엇을 추가해야합니까?
Dr.jacky

48

들어 IntelliJ에 13.1 로 이동 File> - Settings-> Project Settings-> Compiler> - Java Compiler을 위해, 그리고에 오른쪽 Additional command line parameters입력 "-Xlint:unchecked".


감사. 그러나 13.1 Community Edition의 경우 파일-설정-컴파일러-Java 컴파일러에 있으며 필드는 맨 아래에 있습니다.
RenniePet 2014 년

7
14.0.3의 경우이 설정 페이지가 File-Settings-Build, Execution, Deployment-Compiler-Java Compiler로 이동했습니다.
csauve

1
AndroidStudio가 아니라 Java뿐만 아니라 모든 컴파일러에 대해 컴파일러 옵션이 제공되는 것 같습니다 . build.gradle 편집 이 작동합니다.
알렉스 콘

에서 안드로이드 스튜디오 컴파일러 옵션에서 찾을 수 있습니다 파일 -> 새 프로젝트 설정 -> 새로운 프로젝트에 대한 설정 . 그러나 기존 프로젝트에는 적용 되지 않는 것 같습니다 .
JJD

26

gradle 프로젝트에서 다음과 같은 방법으로이 컴파일 매개 변수를 추가 할 수 있습니다.

gradle.projectsEvaluated {
    tasks.withType(JavaCompile) {
        options.compilerArgs << "-Xlint:unchecked"
    }
}

4
최근 Gradle을 버전에서는 작업 유형은 Compile이름이 변경되었습니다 JavaCompile는 그래서,tasks.withType(JavaCompile) { ... }
obecker

1
나는 이것이 들어가야한다고 추가 할 것입니다allprojects { // ... }
Borzh

21

이상하게 들리지만 이것이 귀하의 문제라고 확신합니다.

MyGui.java 어딘가에 유형을 지정하지 않고 일반 컬렉션을 사용하고 있습니다. 예를 들어 어딘가에서 ArrayList를 사용하는 경우 다음을 수행합니다.

List list = new ArrayList();

이 작업을 수행해야하는 경우 :

List<String> list = new ArrayList<String>();

고마워요, 도움이 됐어요!
Farb

14

gradle에 대한 또 다른 방법이 있습니다.

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

예를 들어 이것은 테스트에 영향을 미치지 않습니다.
Trilarion 2015-06-14

2
: 안드로이드 스튜디오의 경우, 이것은 조금 다른 접근이 필요한 것으로 보인다tasks.withType(JavaCompile) { options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" }
알렉스 콘

3
Android Studio 2.1.3의 경우 build.gradle 프로젝트에 추가 allprojects { repositories { jcenter() } gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" } } }
tarn

4

Android Studio의 build.gradle경우 allprojects블록 내의 최상위 파일에 다음을 추가하십시오.

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

3

CMD에서 다음을 작성하십시오.

javac -Xlint:unchecked MyGui2.java

확인되지 않았거나 안전하지 않은 작업 목록이 표시됩니다.


3

NetBeans와 같은 IDE로 작업하는 경우 다음을 지정할 수 있습니다. Xlint:unchecked 프로젝트 속성에 컴파일러 옵션을 .

프로젝트 창으로 이동하여 프로젝트를 마우스 오른쪽 버튼으로 클릭 한 다음 Properties .

나타나는 창에서 Compiling범주를 검색하고 레이블이 지정된 텍스트 상자 Additional Compiler Options에서Xlint:unchecked 옵션을 .

따라서 프로젝트를 컴파일 할 때마다 설정이 유지됩니다.


2

Gradle 컴파일러 인수를 지정하는 더 깨끗한 방법은 다음과 같습니다.

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

이것은 더 짧을 수 있지만 깨끗 하지는 않습니다 . 우선 다른 곳에서 설정된 기존 옵션을 재정의합니다. 다른 경우에는 tarn의 답변 아래 주석에서 언급했듯이 테스트에 영향을 미치지 않습니다. 이렇게하지 말고 대신 xianlinbox의 대답을 사용하십시오.
Konrad Rudolph

1

-Xlint를 사용하여 컴파일하는 다른 방법 : 명령 줄을 통해 확인되지 않음

javac abc.java -Xlint:unchecked

확인되지 않은 안전하지 않은 경고가 표시됩니다.


0

참고로 이러한 설정에 대한 정보는 IntelliJ 15에서 변경되었으며 더 깊은 매장을 위해 새롭게 개선되었습니다!

이제 파일> 기타 설정> 기본 설정> '빌드, 실행, 배포'> 컴파일러> Java 컴파일러

그리고 추가 명령 줄 매개 변수에서 이전과 동일하게 "-Xlint : unchecked"라고 씁니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.