SublimeLinter não funciona com java

2

Eu estou tentando obter sublimelinter para trabalhar com java para que eu possa lint meu programa java, mas eu não sei o que javac -Xlint ou qual é o caminho. Então, minha pergunta é: o que é PATHs e -xlint?

Eu tenho sublimelinter apontou para C:\Program Files\Java\jdk1.7.0_17\bin para arquivos java, mas ainda não está funcionando.

James Hudson
fonte

Respostas:

2

O Sublimelinter não tem fácil de seguir a documentação. Então aqui está o que eu fiz para que funcionasse para mim.

Em seu arquivo de projeto do sublimetext, você precisa configurar o objeto SublimeLinter e configurar as configurações de lint do Java.

Suponha que você tenha uma estrutura de projeto assim:

C:\path\to\projectname
├───src
│   ├───main
│   │   ├───java
│   │   │   └───com
│   │   │       └───yoursite
│   │   ├───resources
│   │   └───webapp
│   │       └───WEB-INF
│   └───test
│       └───java
│           └───com
│               └───yoursite
└───target
    ├───classes
    │   └───com
    │       └───yoursite
    ├───projectname
    │   ├───META-INF
    │   └───WEB-INF
    │       ├───classes
    │       │   └───com
    │       │       └───yoursite
    │       └───lib
    ├───javadoc-bundle-options
    ├───maven-archiver
    └───surefire
  • working_directory : O caminho absoluto para sua área de trabalho. (Alguém sabe como referenciar caminhos no folders.path?) Além disso, o resto dos caminhos são relativos a este.
  • lint_args : argumentos passados ​​para javac
    • -sourcepath : caminho para seus arquivos de origem.
    • classpath : caminho para classes compiladas.
    • -Xlint, -Xlint:-serial: javac opções de linha de comando.
    • {filename} : SublimeLinter referência ao arquivo atual.

De Javac

-Xlint : Ativar todos os avisos recomendados. Nesta versão, todos os avisos disponíveis são recomendados. -Xlint: serial : Avisar sobre a falta de definições serialVersionUID em classes serializáveis.

projectname.sublime-project 1

{
    "folders": [
        {
            "path": "C:\\path\\to\\projectname",
            "name": "projectname"
        }
    ],
    "settings": {
        "SublimeLinter":
        {
            "Java":
            {
                "working_directory": "C:\\path\\to\\projectname",
                "lint_args":
                [
                    "-sourcepath", "src/main/java;c:\\some\\absolute\\path",
                    "-classpath", "C:\\Users\\UERNAME\\.m2\\repository\\path\\to\\file.jar;target/classes",
                    "-Xlint", "-Xlint:-serial",
                    "{filename}"
                ]
            }
        }
    }
}
grocky
fonte
Acordado. Muito em minha opinião.
grocky
0

Você também pode simplesmente adicionar ao seu CLASSPATH as pastas que contêm as classes que você está usando.

Zenadix
fonte