精华内容
下载资源
问答
  • 2021-03-08 03:27:16

    我使用spring mvc + spring boot hibernate。在我运行应用程序之前突然出现这个错误。下面是错误mesage得到错误java:找不到符号类

    C:\用户\ User_2 \ PDRM \ SRC \主\的java \ COM \示例\ RegisterController.java 错误:(23,19)的java:无法找到符号 符号:类Default_profilesRepository 位置:包com。示例 错误:(33,13)的java:无法找到符号 符号:类Default_profilesRepository 位置:类com.example.RegisterController

    这里RegisterController类

    package com.example;

    import com.example.*;

    import org.springframework.beans.factory.annotation.Autowired;

    import org.springframework.stereotype.Controller;

    import org.springframework.ui.Model;

    import org.springframework.validation.BindingResult;

    import org.springframework.validation.Errors;

    import org.springframework.web.bind.annotation.*;

    import org.springframework.web.context.request.WebRequest;

    import javax.validation.Valid;

    import java

    更多相关内容
  • 有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必可少的KaTeX数学...

    前言:基础不牢,地动山摇。从开始学习语言,就使用IDE集成开发工具编写代码,一个按钮,就可以解决编译和运行的所有问题,就像是汽车中的自动档一样。它隐藏了许多重要的细节,其实开发工具编译、运行使用的就是JDK中的javac和java。我们也可以直接使用这些工具来编译和运行我们的代码,期间,根定会遇到很多有趣的问题,解决这些问题,有助于我们了解本质和提升能力。

    一 问题发生

      如下图所示,使用编译工具javac编译源文件时发生了问题:程序包XXX不存在;找不到符号,主要是类名和方法名找不到。

    在这里插入图片描述

    二 问题解决

      原因可能有三个。如果只是出现了问题“错误:找不到符号”,那么原因可能是你没有在源文件中通过import关键字导入该类;如果同时出现问题“程序包XXX不存在”,找不到依赖的文件。如果不是以上两个原因,那可能是你源文件中的类名书写有误。

    1. 未使用import关键字导入该类

    解决:导入即可,例如import javax.servlet.*;

    2. 使用时类名书写错误

    解决:检查你在源文件中使用的类名或者方法名是否和导入的类一致,不一致则修改。

    3. 未找到依赖的类

    在介绍前,我们先来了解一些专业术语和javac命令的使用方法。

    如下图所示,我了方便说明,我新建了一个helloworld项目,类MyApp依赖了两个类,分别是自定义的com.company.util.Say和来自第三发jar包的edu.princeton.cs.algs4.StdOut,调用的函数都是简单的打印输出。
    在这里插入图片描述
    MyApp.java

    package com.company.app;
    
    import edu.princeton.cs.algs4.StdOut;
    import com.company.util.Say;
    
    public class MyApp {
    	public static void main(String args[]) {
    		
    		StdOut.print("The third party lib: Hello World!");
    		
    		Say.print("My own lib: Hello World!");
    	}
    }
    

    Say.java

    package com.company.util;
    
    public class Say{
    	
    	public static void print(String words){
    		System.out.println(words);
    	}
    }
    

    helloworld为项目根目录,src为源文件根目录,out\classes为源文件编译后输出的根目录.

    全限定类名:包名+类名,一个类的包名体现在操作系统中是对应的目录,例如,MyApp.java 定义了package com.company.app; 所以MyApp.java应该在com\company\app目录下,这部分目录结构应该看成是和MyApp.java文件是一体的。理解这一点很重要,javac和java查找类都是根据全限定类名的

    还有在下文提到的当前目录,即命令运行时所在的目录。例如,运行命令C:\Users\gzn\helloworld>javac src\com\company\app\MyApp.java 其中“C:\Users\gzn\helloworld”就是当前目录。


    javac命令的使用方法

    javac <options> <source files>

    <options>:
    -classpath (等同-cp)<路径> 指定查找用户类文件和注释处理程序的位置件所,默认当前目录,即命令运行时所在目录
    -sourcepath <路径> 指定查找输入源文件的位置,默认当前目录,即命令运行时所在目录
    -d <目录> 指定放置生成的类文件的位置,默认源文件所在位置

    <source files>
    需要编译的源文件

    注意:jdk中的函数库lib称为Java的标准库,指定了JAVA_HOME环境变量后就可以使用了,编译和运行会自动在相应位置查找依赖的类。而第三方库(如mysql-connector-java-5.1.40.jar)和用户自己定义的类库 在编译和运行时,需要在-cp类加载路径参数中指明库的位置。


    下面将通过错误在现的方式,一步步得出解决问题的最佳实践。

    第一步,在项目根目录helloworld下运行编译命令,发现自定义和第三方的程序包都没有找到,进而其包中的类也找不到,所以下面也出现了错误:找不到符号。
    在这里插入图片描述
    我们先来解决找不到第三方程序包edu.princeton.cs.algs4的问题,由于我们在运行javac命令时,没有通过参数-classpath指定字节码类文件(后缀.class)的查找路径,因此会使用操作系统环境变量中定义的CLASSPATH(如果定义了的话)。我们先假设没有定义该环境变量,那么就要从当前目录下查找字节码类文件,即从helloworld\目录下查找edu
    princeton.cs.algs4.StdOut(对应与操作即,edu\princeton\cs\algs4\StdOut.class),可想而知,根本不存在该目录及文件。我们在回过头来看看操作系统的环境遍量,如下图所示
    在这里插入图片描述

    变量值中的点“.”代表当前目录,我们已经得知,当前目录下找不到程序包。接着回去%JAVA_HOME\lib\dt.jar和%JAVA_HOME\lib\tool.jar中寻找程序包edu.princeton.cs.algs4,显然也是查找不到的,因为此程序包位于helloworld\libs\algs4.jar中。所以,可以把该路径加入到系统环境变量中,但是此方法太麻烦,不可能每次添加依赖都去设置一下环境变量,因此不推荐使用。那么可以通过使用-classpath参数设置程序包所在的jar,此方法是官方推荐的。

    第二步,在项目根目录helloworld下运行编译命令,并使用-classpath参数
    在这里插入图片描述
    我们自定义的类的程序包不存在,原因有二:1.源文件还没有编译 2.编译后的字节码文件未添加到类查找路径

    第三步,在helloworld\src源文件根目录下运行编译命令”

    在这里插入图片描述
    可以看到我们自定义的程序包即使用的类不再有问题,但是第三方程序包又找不到了。我们先来分析为什么自定义的程序包及类没有问题,编译时,遇到语句import com.company.util.Say,先去classpath下查找,由于没有配置环境变量或显示的使用-classpath参数,所以在当前目录helloworld\src下,查找com.company.util.Say(对应于文件系统,com\compnay\util\Say.class)显然不存在。然后,去sourcepath(由于没有指定-sourcepath参数,所以sourcepath为当前目录,即helloworld\src)下查找com.company.util.Say(对应于文件系统,com\compnay\util\Say.java),可以查找到,于是就进行了编译。由于没有指定编译输出目录参数-d,因此,编译后的字节码文件放在了与源文件相同的目录下,即com\compnay\util\Say.class。然后,再重新在classapth下(即当前目录helloworld\src下)就可以找到程序包及类文件了。

    对于没有依赖第三发程序包的情况,在源文件根目录下运行编译命令,不会出现题目中的问题。

    但是,我们依赖的第三方程序包及类文件,由于没有通过参数-classpath指定,又找不到了,因此,我们需要在-classpath参数中指定当前目录和第三方程序包及类所在目录。

    第四步,在“helloworld\src源文件根目录”下运行编译命令,并使用-classpath参数
    命令:C:\Users\gzn\helloworld\src>javac -classpath .;C:\Users\gzn\helloworld\libs\algs4.jar com\company\app\MyApp.java (图片不清数,点击图片可以使图片变清晰,或者看命令!)
    在这里插入图片描述

    其实,第四步还可以优化,我们希望helloworld\src源文件下只存在源文件,即编译输出到一个固定的目录,如out\classes,不在输出到默认的目录,这样可以使得项目的结构根清晰,同时classpath中的当前目录应该替换为out\classes,还需要使用-\sourcepath指定源文件根目录,不在使用当前目录为源文件根目录。

    第四部优化,同时是最佳实践,在helloworld\src源文件根目录,下运行命令,并使用-classpath参数

    命令:C:\Users\gzn\helloworld>javac -sourcepath src -classpath out\classes;libs\algs4.jar -d out\classes src\com\company\app\MyApp.java(图片不清数,点击图片可以使图片变清晰,或者看命令!)
    在这里插入图片描述
    对于同时依赖自定义和第三方类文件的情况,推荐建议使用这种方法和类似的目录结果。

    另外补充说明,现在classpath的out\classes存在com.company.util.Say.class文件,sourcepath的src存在com.company.util.Say.java文件,在编译时,会检查Say.java在编译后是否存在更新,如果有更新,则则先编译,然后使用out\classes下的com.company.util.Say.class文件,如果不存在更新,则直接使用。

    总结

    情况解决方式
    依赖自定义的类在源文件根目录下运行命令 ,例如C:\Users\gzn\helloworld\src>javac com\company\app\MyApp.java
    依赖自定义类和第三发jar包在源文件目录下运行命令,使用classpath参数,使用默认sourcepath源文件路径,默认d编译输出路径,即当前路径,例如C:\Users\gzn\helloworld\src>javac -classpath .;C:\Users\gzn\helloworld\libs\algs4.jar com\company\app\MyApp.java
    依赖自定义类和第三方包优化最佳实践在源文件目录下运行命令,使用classpath参数,使用sourcepath参数,使用d参数,例如C:\Users\gzn\helloworld>javac -sourcepath src -classpath out\classes;libs\algs4.jar -d out\classes src\com\company\app\MyApp.java

    注:-d中目录必须先手动创建


    三 其他

    欢迎阅读,其他相关文章:

    展开全文
  • D:\009protobuff\grpc-java-1.42.0\grpc-java-1.42.0\examples\src\...java: 找不到符号 符号: 方法 awaitQuiescence(int,java.util.concurrent.TimeUnit) 位置: 类型为java.util.concurrent.ForkJoinPool的变量 e...

    D:\009protobuff\grpc-java-1.42.0\grpc-java-1.42.0\examples\src\main\java\io\grpc\examples\hedging\HedgingHelloWorldClient.java:183:13
    java: 找不到符号
      符号:   方法 awaitQuiescence(int,java.util.concurrent.TimeUnit)
      位置: 类型为java.util.concurrent.ForkJoinPool的变量 executor

    把当前工程加入编译路径就行了。 

     

     

    展开全文
  • java 找不到符号解决方法

    千次阅读 2021-04-17 11:02:21
    java 找不到符号java初学者,CT类里的gai()和mian()前提示错误找不到符号,自己改了半天不行,求大神指导importjava.util.*;publicclassCT{publicstaticvoidmain(String[]args)throwsException{Scannerscan=new...

    java 找不到符号

    java初学者,CT类里的gai()和mian()前提示错误找不到符号,自己改了半天不行,求大神指导

    import java.util.*;

    public class CT{

    public static void main(String[] args)throws Exception

    {

    Scanner scan=new Scanner(System.in);

    boolean b=true;

    while(b){

    System.out.println("*****欢迎进入食堂点餐系统*****");

    System.out.println("     1.盖饭类");

    System.out.println("     2.小碗菜");

    System.out.println("     3.面食类");

    System.out.println("     4.其他");

    System.out.println("     5.退出");

    System.out.print("请选择:");

    int a=scan.nextInt();

    switch(a)

    {

    case 1:

    gai();

    break;

    case 2:

    break;

    case 3:

    mian();

    break;

    case 4:

    break;

    case 5:

    b=false;

    break;

    }

    }

    Thread.sleep(5000);

    System.out.println("谢谢使用!");

    }

    }

    class gai{

    public void gai(){

    Scanner scan1=new Scanner(System.in);

    boolean c=true;

    while(c){

    System.out.println("     1.宫保鸡丁盖饭");

    System.out.println("     2.地三鲜盖饭");

    System.out.println("     3.土豆牛肉盖饭");

    System.out.println("     4.鱼香烘蛋盖饭");

    System.out.println("     5.葱爆羊肉盖饭");

    System.out.println("     6.重新选择");

    System.out.print("请选择:");

    int d=scan1.nextInt();

    switch(d)

    {

    case 1:

    case 2:

    case 3:

    case 4:

    case 5:

    System.out.println("请稍等...");

    break;

    case 6:

    c=false;

    break;

    }

    }

    }

    }

    class mian{

    public void mian(){

    Scanner scan2=new Scanner(System.in);

    boolean e=true;

    while(e){

    System.out.println("     1.红烧牛肉面");

    System.out.println("     2.茄子鸡丁面");

    System.out.println("     3.羊肉面");

    System.out.println("     4.清汤面");

    System.out.println("     5.西红柿鸡蛋面");

    System.out.println("     6.重新选择");

    System.out.print("请选择:");

    int f=scan2.nextInt();

    switch(f)

    {

    case 1:

    case 2:

    case 3:

    case 4:

    case 5:

    System.out.println("请稍等...");

    break;

    case 6:

    e=false;

    break;

    }

    }

    }

    }

    分享到:

    ------解决方案--------------------

    没检查括号是否匹配,大概调整了下方法的位置:

    import java.util.*;

    public class CT{

    public static void main(String[] args)throws Exception

    {

    Scanner scan=new Scanner(System.in);

    boolean b=true;

    while(b){

    System.out.println("*****欢迎进入食堂点餐系统*****");

    System.out.println("     1.盖饭类");

    System.out.println("     2.小碗菜");

    System.out.println("     3.面食类");

    System.out.println("     4.其他");

    System.out.println("     5.退出");

    System.out.print("请选择:");

    int a=scan.nextInt();

    switch(a)

    {

    case 1:

    gai();

    break;

    case 2:

    break;

    case 3:

    mian();

    break;

    case 4:

    break;

    case 5:

    b=false;

    break;

    }

    }

    Thread.sleep(5000);

    System.out.println("谢谢使用!");

    }

    //方法移动到这里,并增加static

    public static void gai(){

    Scanner scan1=new Scanner(System.in);

    boolean c=true;

    while(c){

    System.out.println("     1.宫保鸡丁盖饭");

    System.out.println("     2.地三鲜盖饭");

    System.out.println("     3.土豆牛肉盖饭");

    System.out.println("     4.鱼香烘蛋盖饭");

    System.out.println("     5.葱爆羊肉盖饭");

    System.out.println("     6.重新选择");

    System.out.print("请选择:");

    int d=scan1.nextInt();

    switch(d)

    {

    case 1:

    case 2:

    case 3:

    case 4:

    case 5:

    System.out.println("请稍等...");

    break;

    case 6:

    c=false;

    break;

    }

    }

    }

    //方法移动到这里,并增加static

    public static void mian(){

    Scanner scan2=new Scanner(System.in);

    boolean e=true;

    while(e){

    System.out.println("     1.红烧牛肉面");

    System.out.println("     2.茄子鸡丁面");

    展开全文
  • 错误:error: cannot find symbol出现的内容起作用:如果我写:“ InvoerVakhandler扩展了boven”,则该错误消失了,但是随后我得到了一个无限循环,最后程序崩溃并说堆栈溢出错误。如果我尝试更改boven类中的“}...
  • 编译java代码时报错找不到符号

    千次阅读 2021-02-12 15:04:46
    译一段java代码时,提示“错误: 找不到符号”,如下:D:\practicejava>javac PrintArray.javaPrintArray.java:4: 错误: 找不到符号System.out.println("Array number:" + Arrays.toString(testArr));^符号: 变量 ...
  • maven install报错:找不到符号

    千次阅读 2022-04-10 13:42:21
    在进行项目打包的时候发现执行maven install会出现报错:找不到符号 [ERROR] /Library/project/work/fantu_java/digitalenterprise_business/bladex-biz/blade-service-api/blade-fleet-basic-api/src/main/java/org...
  • java错误:找不到符号

    千次阅读 2021-02-12 15:17:40
    问题描述编译一段java代码时,提示“错误: 找不到符号”,如下:(推荐:java视频教程)D:\practicejava>javac PrintArray.javaPrintArray.java:4: 错误: 找不到符号System.out.println("Array number:" + Arrays....
  • IDEA编译代码报错,找不到符号找不到符号

    万次阅读 多人点赞 2019-01-24 09:31:08
    IDEA编译代码报错,找不到符号找不到符号包 在使用IDEA的时候,经常出现过不到包或者找不到符号的情况,可以尝试以下几种方式来解决 1:之前我保存有个工具类,刚好项目中要用到。我就引用了整个工具类。就是...
  • java编译时找不到符号,怎么处理

    千次阅读 2021-02-12 15:04:51
    已采纳java编译时提示找不到符号的解决方式如下:方法一:进入d:/web/wsh下: javac a.java然后退出wsh目录即进入d:/wsh下 javac wsh/b.java即可编译成功!方法二:通过使用javac -classpath(cp)参数进入d:/web /wsh下...
  • maven 模块打包 找不到符号

    千次阅读 2019-12-28 17:08:56
    今天,要对之前的一个老系统改造,在改造过程当中,遇到maven打包找不到符号,具体报的错误如下所示 说实话,解决这个错误花费了很长时间,所以特此记录下来,留着做警惕。 因为要改造的系统是一个一体化(没有分模块),...
  • java找不到符号解决办法

    千次阅读 2022-04-04 10:22:20
    一、java找不到符号 如果你的代码里没有报错,明明是存在的。但是java报错找不到符号。像下面这样子。 二、解决步骤 1.清除编码工具缓存 本人用的idea, eclipse清除缓存方式有需要的可以百度一下! 2.如果是mavne...
  • 运行java代码时出现找不到符号错误怎么解决发布时间:2020-06-23 11:37:00来源:亿速云阅读:113作者:Leah运行java代码时出现找不到符号错误怎么解决?针对这个问题,今天小编总结了这篇文章,希望能帮助更多想解决...
  • 什么会导致Java中找不到符号错误?

    千次阅读 2021-04-15 14:09:44
    每当您需要在当前程序中使用外部类/接口(用户定义的或内置的)时,都需要使用import...您将看到一个异常提示“找不到符号……”。示例在下面的示例中,我们尝试从键盘(System.in)中读取一个表示用户名的字符串值。...
  • 解决gradle下找不到符号错误

    千次阅读 2022-03-28 19:58:34
    解决gradle下找不到符号错误 一、问题描述 ​ 在写代码的时候,发现编译的时候报了找不到符号错误 ​ 这个类是在common下的tools包里,项目中server依赖于common,我在server中注入AppealTool类时,报了这个错误。 ...
  • java 错误找不到符号 When a Java program is being compiled, the compiler creates a list of all the identifiers in use. If it can't find what an identifier refers to (e.g., there is no declaration ...
  • 错误如下图 这个是databinding 使用错误引起的 我的错误是因为 自己写...布局和代码里面名字一样 就是 2个里面的名字要一样 ,代码中 View 如果忘记填写也是会出现同样的错误.............. ...
  • Java里编译找不到符号怎么办

    千次阅读 2021-11-20 21:17:37
    java中编译找不到符号以及无法转换
  • java: 找不到符号 符号: 变量 log

    千次阅读 2021-11-25 10:56:17
    - 知乎今天工作室比较晚,在电脑前吃着早饭,看到提示IDEA提示升级,寻思已经有好久没有升过级了。一样等着,就升级下吧。 升级完毕重启之后,突然发现好多错误,原来的应用也没法启动了。仔细一看报错信息,是...
  • Idea编译:Java找不到符号

    千次阅读 2021-11-10 16:34:27
    在使用idea编译运行程序时,有时会出现‘Java找不到符号’的报错,一般可采取以下几种方法: 1、选择相应的模块,使用maven的reload project 2、重启idea 3、设置统一的编码,一般为UTF-8 4、重新build 5、经过...
  • 出现 “ 错误,找不到符号 ” 字样,同时报错一堆,但代码在其他电脑上成功运行过。 问题原因 IDEA工具的Lombok插件问题,导致无法识别。 解决方法 1.首先下载或者更新Lombok插件,选择File->Settings-...
  • Idea编译提示Java找不到符号解决方式

    千次阅读 2022-04-17 20:15:30
    运行项目时Idea报错,提示找不到符号,但是这个类在项目里是存在的,网上了很多文章都没解决,浪费了一个下午终于弄好了,记录一下。 Error:(119, 13) java: 找不到符号 符号: 类 Car 位置: 类 ...
  • java: 找不到符号

    千次阅读 2021-12-01 16:49:47
    java:找不到符号的解决办法
  • javac 找不到符号

    千次阅读 2019-02-20 16:14:07
    问题场景:两个java文件A,B,... 但是能运行,报错无法加载主类, 这种情况我就继续研究了, 我认为会出现一个项目会用到另外一个项目的文件。 就这样吧                  
  • 环境IntelliJ IDEA 2020.1JDK1.8前提概要问题1和问题2其实是同一个问题,但是表现上有一点不一样具体是如何引起该问题,尚不清楚,特此...existent location:类路径条目指向不存在的位置 程序包不存在 找不到符号...
  • 前言: idea导入gradle项目,运行项目,结果报错或者导包找不到… 问题: 解决: 勾选上,即可
  • java: 错误: 找不到符号

    千次阅读 2022-02-07 14:33:38
    java: 错误: 找不到符号 编译代码,报错截图如下 解决方式思路:如果有很多的‘java: 错误: 找不到符号’,说明这几个位置都有一个共性的问题,都用到了同一个东西,随便一个错误追踪进去,错误原因 1.idea...
  • 解决 IDEA 报错:找不到符号

    千次阅读 2021-05-27 16:45:36
    遇到过几次IDEA 报错 找不到符号,在网上搜索了很多方法,始终无法解决问题 1,重启 2,修改编码 UTF-8 3,清理缓存重启 4,maven clean,重新编译 都没有解决问题 最后我打开文件目录,手动删除 target ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,535,146
精华内容 614,058
关键字:

找不到符号