[java] il messaggio "impossibile trovare il simbolo" non è di aiuto


5 Answers

aggiornamento a 3.1:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
    </configuration>
</plugin>
Question

Questa è una domanda molto semplice, ed è probabilmente un'impostazione da qualche parte che non conosco, ma Google non è particolarmente utile per questa domanda, fornendo risultati sugli errori di compilazione, non su come modificare i messaggi di errore di compilazione.

Quando costruisco il mio progetto con Maven, mi darà messaggi di errore formattati in modo approssimativo come segue:

[ERRORE] /path/to/source/Main.java:[13,8] errore: impossibile trovare il simbolo

Quando costruisco con ant o javac, in realtà mi dirà il simbolo che non riesce a trovare nel messaggio di errore. Maven mi fornisce un numero di riga e una posizione di carattere, ma visualizzare il simbolo effettivo sarebbe più utile. La riga sopra è l'unica linea data per ciascuno degli errori "Impossibile trovare il simbolo". Non c'è nessuna linea sopra o sotto che dia il simbolo. Immagino ci debba essere un modo per convincere me stesso a dirmi quell'informazione, ma non so cosa sia. Ho provato l'opzione -e, poiché mvn mi ha detto di provare ad usarlo, ma ha dato un traceback per l'errore, non il vero simbolo.

Qualsiasi aiuto?

Ecco l'output di mvn --version

Apache Maven 3.0.4 (rNON-CANONICAL_2012-10-24_11-25_mockbuild; 2012-10-24 07:25:04-0400)
Maven home: /usr/share/maven
Java version: 1.7.0_09-icedtea, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.6.6-1.fc17.x86_64", arch: "amd64", family: "unix"

Ed ecco un esempio di messaggio di errore (inutile), esattamente come output di Maven (solo con le directory abbreviate):

[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /path/to/source/SoundEngineFilePanel.java:[33,8] error: cannot find symbol
[ERROR]  class SoundEngineFilePanel
/path/to/source/SoundEngineFilePanel.java:[36,8] error: cannot find symbol
[INFO] 2 errors 
[INFO] -------------------------------------------------------------

I simboli che non riesce a trovare sono "fakeThing" e "fakeThing2", non SoundEngineFilePanel.




Ho avuto lo stesso problema. Il motivo era che avevo due file JAR non aggiunti tramite la dipendenza Maven, quindi quando mvn compile , la console mostrava l'errore di errore:

Il simbolo non può essere trovato, Classe ... ".

Per risolverlo:

  1. Rimuovere i file JAR dal percorso di generazione
  2. Aggiungi al percorso di costruzione
  3. Esegui mvn compile



se si ha dipendenza da qualche altro progetto nello spazio di lavoro e questi progetti non sono costruiti correttamente, potrebbe verificarsi un errore. prova a creare prima tali progetti dipendenti, potrebbe essere d'aiuto




La mia ipotesi è che il compilatore si stia lamentando di un'annotazione non valida. Ho notato che Eclipse non mostra tutti gli errori, come una virgola alla fine di una matrice in un'annotazione. Ma il javac standard lo fa.




Ho avuto lo stesso problema con Maven. Succede che il mio problema era che Maven stava generando le cartelle con nomi di case differenti. Mi aspettavo un .service.MyFile ma nella cartella di destinazione era Service / MyFile e java è sensibile alle maiuscole e alle minuscole. Mi ci sono volute un paio d'ore per scoprirlo, ti consiglio di provarlo.




Anche io sto usando Java 7, Maven 2.2.1 e stavo ottenendo lo stesso errore, ho rimosso <scope>tests</scope> dal mio pom e usato

mvn clean -DskipTests=true install per costruire con successo i miei progetti, senza aggiornare la mia versione di Maven.




Related