精华内容
下载资源
问答
  • 程序包xxx不存在
    千次阅读
    2021-11-25 10:26:47

    一、打开自己项目中的build.gradle
    在这里插入图片描述
    二、找到build.gradle中的dependencies添加compileOnly fileTree(dir: ‘自己的lib’, include: ‘*.jar’)
    在这里插入图片描述
    三、加载gradle的变更
    在这里插入图片描述

    更多相关内容
  • 程序包com.example.commons.application不存在 解决 1、依赖未声明或者未下载成功 首先出现这个问题最常见的原因是jar包未引入,需要在pom中引入对应的jar包,其次检查这个包是否声明版本,且对应的包是否下载成功...

    问题

    项目是springcloud项目,在maven install某一个项目时报错:

    程序包com.example.commons.application不存在
    

    在这里插入图片描述

    解决

    1、依赖未声明或者未下载成功

    首先出现这个问题最常见的原因是jar包未引入,需要在pom中引入对应的jar包,其次检查这个包是否声明版本,且对应的包是否下载成功,如果下载不成功会在pom中爆红

    2、引用的是本地模块,但是未打包到本地maven仓库

    需要注意的是如果是引入的本地的其他模块,那么需要先将被引用的这个模块先maven install
    打包到本地仓库。然后当前模块才能正常引入到这个模块

    3、父子项目包名不一致

    这个问题原因也是我这里遇到的原因,不注意的话很难排查,父项目中声明的包名是org.xxx,但是子项目中声明的包名却是com.xxx

    在pom中将父子模块的包名统一即可

    <groupId>org.xxx</groupId>
    

    注意事项

    修改完成后打包时需要注意,可能你再次打包还是报错,这是因为我们给子项目打包时需要引入父项目,而父项目报错,所以打不上。

    而给父项目打包又因为modules里面声明了子项目,而子项目报错,所以又会导致父项目打不上。

    这父子都打不了那怎么办呢?答案是想让他们暂时断绝下父子关系

    1、先在父项目pom的modules中将改子项目的module删掉,然后打包父项目,因为没有了报错的子项目那么父项目是可以打包成功的。

    <modules>
            <module>common</module>
            <module>gateway</module>
    <!--        <module>service</module>-->
    <!--        <module>service-api</module>-->
    </modules>
    

    2、然后再来打包子项目,需要注意的是子项目中要通过parent标签声明父项目

    <parent>
            <groupId>com.example</groupId>
            <artifactId>fleet_manager_system1</artifactId>
            <version>0.0.1-SNAPSHOT</version>
    </parent>
    

    3、然后再回到父项目中将删除的子项目的module恢复,再次打包父项目,这时因为没有子项目报错,那么父项目也能成功打包了

    <modules>
            <module>common</module>
            <module>gateway</module>
    <!--        <module>service</module>-->
            <module>service-api</module>
        </modules>
    

    4、如果有多个子项目打包不成功了,那么就通过上述的步骤循环往复,最终就会迎来我们所期待的BUILD SUCCESS
    在这里插入图片描述

    4、maven仓库路径不对

    开发工具中打包的maven仓库的地址不对,通过settings>Build,Execution,Deployment>Build Tools>Maven中的Local repository项可以查看到开发工具中配置的本地Maven仓库地址,检查这个地址是否是你真实的maven仓库地址。

    有一个检查的方式,就是直接进入到该路径下,看看有没有对应包名路径的.jar文件,如果有则说明配置正确,如果没有说明并没有可能是路径不对,也可能是上述原因1,2
    在这里插入图片描述

    5、重启idea

    有时因为开发工具的问题,可能会导致一直加载不出来,如果实在找不到问题所在时,不妨尝试重启开发工具,甚至重启电脑,可能有奇效。

    6、清空target目录

    有时因为开发工具问题,可能target目录一直未刷新,所以在maven install之前,先执行maven clean将历史数据清空下再打包

    展开全文
  • 有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右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中目录必须先手动创建


    三 其他

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

    展开全文
  • 主要介绍了IDEA2020.1启动SpringBoot项目出现java程序包:xxx不存在,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • Maven打包失败:程序包XXX不存在

    千次阅读 2022-03-22 13:34:26
    用Maven引入本地jar这种做法非常合理,很容易导致团队jar混乱,最好尝试搭建私服解决。 **1.问题实质:**Maven仓库jar下载失败或项目引入本地jarMaven没有对应进行配置 2.问题原因: (1) 因网络或其他原因...

    用Maven引入本地jar包这种做法非常不合理,很容易导致团队jar包混乱,最好尝试搭建私服解决。

    **1.问题实质:**Maven仓库jar包下载失败或项目引入本地jar包Maven没有对应进行配置

    2.问题原因: (1) 因网络或其他原因导致Maven下载jar包到本地仓库失败

    (2) 项目引入本地jar包,只在编译器里进行了配置而没有在Maven中进行配置

    3.解决步骤: (1)查看对应出错jar包的本地Maven仓库jar包是否下载完整

    如果如上图所示将文件删掉重新下载即可。

    (2) 如果出现在编译器中可以找到jar包,但是用Maven打包报错:

    就要查看一下项目是否引入本地jar包但Maven没有对其进行配置。

    **解决方案1:**找到存放第三方jar包文件夹 (例如src/main/webapp/WEB-INF/lib)右键AddasLibrary加入项目运行库:

    然后配置Maven打包插件扫描额外jar包

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <encoding>UTF-8</encoding>
            <compilerArgs>
                <arg>-verbose</arg>
                <arg>-Xlint:unchecked</arg>
                <arg>-Xlint:deprecation</arg>
                <arg>-bootclasspath</arg>
                <arg>${env.JAVA_HOME}/jre/lib/rt.jar</arg>
                <arg>-extdirs</arg>
                <arg>${project.basedir}/src/main/webapp/WEB-INF/lib</arg>
            </compilerArgs>
        </configuration>
    </plugin>
    

    其中${project.basedir}为项目根结点

    图片引自:https://www.cnblogs.com/water-1/p/11521209.html,此方法多人尝试成功但笔者没有解决。

    **解决方案2:**修改pom文件,引入依赖并且将scope设置为system
    https://img2018.cnblogs.com/blog/1320942/201903/1320942-20190321135823725-646580441.png

    配置Maven打包插件

    此方法亲测可行,但笔者引入的本地jar数量太多,一个一个写估计会累死。

    **解决方案3:**将jar包安装至本地仓库后使用pom文件直接引入,进入需要引入的jar目录,执行以下命令

    mvn install:install-file -Dfile=druid-1.1.4.jar -DgroupId=com.alibaba -DartifactId=druid -Dversion=1.1.4 -Dpackaging=jar
    

    执行后在本地仓库中看到如下文件,说明安装成功

    此方法亲测可行,理由同上,引入本地jar太多。

    **解决方案4:**哪个模块找不到jar包就单独rebuild一下这个model,注意rebuild之后不要用maven的clean

    rebuild完成之后再重新install

    吼吼,简单粗暴,方便快捷,非常适合维护老项目。新项目就别这么搞了,老老实实建私服吧。

    展开全文
  • 一、程序包xxx不存在到符号 我在引入依赖之后,写了个工具类,然后运行发现build失败了。 提示 程序包xxx不存在到符号 二、解决方案 mvn idea:idea [INFO] Scanning for projects... Downloading from ...
  • springboot项目打包时提示“程序包xxx不存在,找到符号” springboot多包工程,在使用maven进行打包的时候,一直提示“程序包xxx不存在,找到符号”,但项目是可以正常启动运行的,开始一直以为是maven哪里没有...
  • [ERROR] After correcting the problems, you can resume the build with the command [ERROR] mvn -rf :iot_push_server 这里最关键的提示是: 程序包 com.sun.istack.internal 不存在 我看了下ide,没有报错,可以...
  • IDEA报错程序包XXX不存在和找到符号的解决办法MAVEN本地仓库存在包,但是IDEA无法正常编译MAVEN本地仓库配置问题一:缺少阿里云镜像问题二:执行mvn idea:idea解决问题一解决问题二 MAVEN本地仓库存在包,但是IDEA...
  • java:程序包XXX不存在

    千次阅读 2020-12-17 16:50:43
    idea中大量java:程序包XXX不存在 有三种解决方案 一、修改idea设置 file-->settings-->Build,Execution,Deployment-->Build Tools-->Maven-->Runner-->勾选Delegate IDE build/run actions to...
  • 有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必可少的KaTeX数学...
  • 解决Springboot中“Error java: 程序包xxx不存在

    万次阅读 多人点赞 2019-10-16 16:57:12
    Springboot项目,我新建了实体类和MVC那些类,运行就报错说找到,实际上是存在的。如下图: 解决:删了target整个目录,再重新打包编译。 原因:添加或删除了Java文件夹,并没有重新编译,需要重新打包编译。 ...
  • springboot多包工程,在使用maven进行打包的时候,一直提示“程序包xxx不存在,找到符号”,但项目是可以正常启动运行的,开始一直以为是maven哪里没有配置好导致的,后来才发现原来是springboot的maven插件导致的...
  • Maven打包 提示程序包xxx不存在或找到的符号

    千次阅读 热门讨论 2020-05-16 16:20:01
    Maven打包 提示程序包xxx不存在或找到的符号 出现这个问题,一般是因为maven项目,我们有好几个模块,一开始的话,我们只是父模块和子模块的关联关系,子模块之间并没有存在关系。 但是当有需求,我们在A模块中...
  • IDEA中maven项目,程序编辑没有错误,该引用的包都引用进来了,但一运行就出现“程序包xxx不存在”的问题 二、原因 IDEA的Build(编译)操作和Maven的Build是分开的,他们不是一回事。 三、解决办法 办法一 点击idea...
  • 从CMD窗口运行Java程序出现的程序包XXX不存在、找到或无法加载主类XXX问题详解 Java源文件所在目录 文件一:E:\com\test\Test.java package com.test; import com.packageaccess.*; public class Test { public...
  • Compilation failure Error 程序包xxx不存在,Error 找到符号 在Java工程里好几次遇到了这个错误,每次都记得上一次是怎么解决的,导致都要花费很长时间去处理,另一方面也是对java学习理解和使用的...
  • 记录IDEA的maven项目运行存在程序包xxx不存在”的问题 使用IDEA编写maven项目,在点击run运行项目时,IDEA提示“程序包xxx不存在”,我尝试了网上众多方法之后,终于解决了问题。 临时方案 勾选Maven-Runner-...
  • 网上找了很多贴了,试了N中方法,都无效,最后和能编译过的工程一一对比,终于发现问题 pom.xml文件缺少packaging标签,即做如下修改,编译通过!!!
  • 在一些springbood的项目有时候明明程序包xxx依赖导入了,但是就是一启动就报xxx错误,产生此错误,就是依赖包没有下载完整,需要重新下载。 错误示范: 首先找到此idea输入窗口: 输入此命令:mvn idea:module下载,...
  • <p>Java中代码没问题,编译显示程序包xxx不存在是怎么回事?有什么解决方法吗?</p>
  • 而projectA工程无法依赖common工程的可执行jar,所以编译失败:程序包xxx不存在。 添加配置后截图如下,其中common-1.0-SNAPSHOT-exec.jar为可执行jar,common-1.0-SNAPSHOT.jar为普通jar包。 相关博客,...
  • 在运行引导类的时候,一直提示“程序包xxx不存在,找到符号” 原因: 在使用maven install 项目过程出现此问题,一般这种情况就是依赖问题,pom.xml中导入有问题,有可能是springboot自身的编译插件spring-boot-...
  • Maven多模块项目编译失败:程序包xxx不存在 项目结构如下: parent(父类工程) | - - - - - common(通用工具类子工程) | - - - - - projectA(springboot子工程,依赖common工程) pom.xml 问题描述: 通过parent...
  • 此时需要删除spring-boot-maven-plugin,然后再打包,这样B引用到的A就不会出现找程序包的问题。 即非springboot-web模块,一律能使用springboot的打包插件,像常用的api,common,util等等jar包使用maven...
  • [IDEA]Java:“程序包XXX不存在”问题的三种解决方案 实测好用,以此留念。 三种方案 01 出现jar包找到的问题,首先有可能是项目依赖中有些jar没有下载完整 而mvn idea:idea这个命令可以检查并继续下载未...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 211,411
精华内容 84,564
关键字:

程序包xxx不存在

友情链接: 同步规则adc通道.zip