相关疑难解决方法(0)

什么是"找不到符号"编译错误是什么意思?

请解释以下关于"无法找到符号"的错误:

  • 这个错误是什么意思?
  • 什么东西会导致这个错误?
  • 程序员如何解决此错误?

这个问题旨在成为一个关于Java中"无法找到符号"编译错误的综合问题.

java compiler-errors cannot-find-symbol

364
推荐指数
8
解决办法
86万
查看次数

如何使maven-compiler-plugin不会隐藏错误源位置

也许有一个maven-compiler-plugin选择,但我没有找到它.

javac直接运行并打印错误时,在消息的第一行之后,它会在指向错误位置的下一行显示受影响的源代码行.它看起来像这样:

com/invariantproperties/udt/sql/RationalUDT.java:324: error: cannot find symbol
    public static boolean lessThan(RRationalUDT p, double q) {
                                   ^
  symbol:   class RRationalUDT
  location: class RationalUDT
Run Code Online (Sandbox Code Playgroud)

注意直接指向我拼写错误类型名称的行.它maven-compiler-plugin显示如下:

[ERROR] /var/tmp/pljava-udt-type-extension/java/src/main/java/com/invariantproperties/udt/sql/RationalUDT.java:[324,36] cannot find symbol
  symbol:   class RRationalUDT
  location: class com.invariantproperties.udt.sql.RationalUDT
Run Code Online (Sandbox Code Playgroud)

注意它摆脱了实际指向错误的行.(这是使用Oracle JDK 7.)

好的,所以起初我认为这个较旧的问题会得到答案,因为它也maven-compiler-plugin没有显示整个错误消息,并且说修复程序是更新到maven-compiler-plugin3.1版.

但是对于这个问题,我尝试了2.4,3.1和3.5而没有任何改进.显示错误的行总是丢失.

这适用于任何javac错误.在示例中,我拼错了一个符号,只是为了得到与旧问题所讨论的相同的错误.但我可以修复那个并制作另一个(这个来自javac注释处理器):

com/invariantproperties/udt/sql/RationalUDT.java:324: error: No known mapping to an SQL type
    public static boolean lessThan(RationalUDT p, double q) {
                                               ^ …
Run Code Online (Sandbox Code Playgroud)

java maven-3 maven maven-compiler-plugin

8
推荐指数
1
解决办法
418
查看次数

在泽西岛找不到符号PathParam

这是我的代码

@Path("/users/{id}")
public class MyResource {

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String getId(@PathParam("id") String id) {
        return "Getting Messages for User : " + id;
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到的只是

..MyResource.java:[17,29] error: cannot find symbol
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经检查了这两个 https://confluence.atlassian.com/display/CLOVERKB/Maven+2+plugin+fails+with+cannot+find+symbol+exception+when+defining+two+locations+for+source +文件

& 这个

maven"找不到符号"的消息无益

但没有任何成功.

编辑: pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.placeholder</groupId>
    <artifactId>edelivery-sp</artifactId>
    <packaging>jar</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>edelivery-sp</name>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.glassfish.jersey</groupId>
                <artifactId>jersey-bom</artifactId>
                <version>${jersey.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.glassfish.jersey.containers</groupId>
            <artifactId>jersey-container-grizzly2-http</artifactId>
        </dependency>
        <!-- uncomment this to get JSON support:
         <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-moxy</artifactId>
        </dependency>
        -->
        <dependency> …
Run Code Online (Sandbox Code Playgroud)

java jax-rs jersey maven

5
推荐指数
1
解决办法
2627
查看次数