-
2020-07-20 17:16:31
原文链接:https://blog.csdn.net/qq_22855003/article/details/89843640
比如我们要注入第三方jar包里的CrawlerTask1,CrawlerTask2这个两个类
因为这两个类上没有被@Service,@Repository等类注解,如果我们想用@Autowired注入会报错:
@Autowired private CrawerTask1 crawerTask1;
我们可以新建一个Config类,在里面获得我们想要注入的第三方jar包的类,通过@Configuration注解这个Config类,在每个方法上注解@Bean,这样我们在用@Autowired注解注入就可以用了:
@Configuration public class ClientConfig { @Bean CrawerTask1 getCrawler1(){ CrawerTask1 crawer = new CrawerTask1 (); return crawer; } @Bean CrawerTask2 getCrawler2(){ CrawerTask2 crawer = new CrawerTask2(); return crawer; } }
参考:
使用 AnnotationConfigApplicationContext 注册配置类
使用AnnotationConfigApplicationContext注册配置类
springboot:SpringUtil工具类-----applicationContext获取bean
Bean name用法
spring注解之@Scope
SpringBoot之 (三)@Bean注解更多相关内容 -
maven发布jar包运行时找不到类问题
2021-02-03 16:43:17只不过,它没有跟一般的jar包放在一起,比如放在 BOOT-INF\lib 而是放在了 BOOT-INF\classes\libs 估计就是这个原因,运行时找不到了。为什么放在这里,就找不到呢?不知道。我目前还不知道原因。但是,开发阶段,...我们有个公共类库,编译成jar包,供其他项目调用。
然鹅,有一个项目也编译成一个jar包,以命令行的方式运行,结果提示找不到这个公共类库。
打开项目jar包,里面是有公共类库jar包的。只不过,它没有跟一般的jar包放在一起,比如放在
BOOT-INF\lib
而是放在了
BOOT-INF\classes\libs
估计就是这个原因,运行时找不到了。为什么放在这里,就找不到呢?不知道。我目前还不知道原因。但是,开发阶段,在idea里运行就好好的。看来还是打包的问题。
为啥公共类库包会放在
BOOT-INF\classes\libs
呢?原因是依赖的方式是这样写的:<dependency> <groupId>com.monkey</groupId> <artifactId>lt-framework</artifactId> <version>1.0.0</version> <scope>system</scope> <systemPath>${project.basedir}/src/main/resources/libs/lt-framework-1.0.0.jar</systemPath> </dependency>
这样做的好处是,多人开发的情况下,这个依赖包的版本是一致的。当然,将包发布到内部仓库也可以,但我们没搞这个东东。总之吧,用了上面说的,在本地文件夹寻找包的依赖方式,毛病出来了,怎么办?其实就是在pom.xml的build里声明一下:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <includeSystemScope>true</includeSystemScope> </configuration> </plugin> </plugins> </build>
这样子发布以后,公共包也会拷贝一份到
BOOT-INF\lib
(BOOT-INF\classes\libs
还是有,浪费,不知怎么设置去掉),运行正常。 -
Eclipse中调用jar包中的类时,明明build path已经导入了该jar包,但是项目跑起来的时候,依然报错找不到类
2019-10-27 15:46:27 -
Java 打包成jar包 和 解压jar包
2021-03-08 03:42:07解压jar包jar xf xxx.jar打包成jar包方法一:通过jar命令jar命令的用法:下面是jar命令的帮助说明:用法:jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...选项包括:-c 创建新的...解压jar包
jar xf xxx.jar
打包成jar包
方法一:通过jar命令
jar命令的用法:
下面是jar命令的帮助说明:
用法:jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
选项包括:
-c 创建新的归档文件
-t 列出归档目录
-x 解压缩已归档的指定(或所有)文件
-u 更新现有的归档文件
-v 在标准输出中生成详细输出
-f 指定归档文件名
-m 包含指定清单文件中的清单信息
-e 为捆绑到可执行 jar 文件的独立应用程序
指定应用程序入口点
-0 仅存储;不使用任何 ZIP 压缩
-M 不创建条目的清单文件
-i 为指定的 jar 文件生成索引信息
-C 更改为指定的目录并包含其中的文件
如果有任何目录文件,则对其进行递归处理。
清单文件名、归档文件名和入口点名的指定顺序
与 "m"、"f" 和 "e" 标志的指定顺序相同。
示例 1:将两个类文件归档到一个名为 classes.jar 的归档文件中:
jar cvf classes.jar Foo.class Bar.class
示例 2:使用现有的清单文件 "mymanifest" 并
将 foo/ 目录中的所有文件归档到 "classes.jar" 中:
jar cvfm classes.jar mymanifest -C foo/ .
下文假设编译后的class文件在bin目录下
一、打包成一般的jar包
输入如下命令即可:
jar cvf counter.jar -C bin .
其中,“-C bin”实际上是告诉jar命令先cd到bin目录下,再在此目录执行没有参数“-C bin”的命令,等价于:
cd bin
jar cvf counter.jar . // "."代表当前路径
二、打包成可运行的jar包
要打包成可运行的jar包,有两种方法,一是手动创建MANIFEST.MF文件,并在其中指定主类;二是使用jar的-e参数指定可运行jar包的入口点(即main类的完全名称).
以Java源代码行数统计程序的打包为例,演示如何打包:
1. 手动创建MANIFEST.MF文件:
1)首先编辑MANIFEST.MF文件,内容如下:
Manifest-Version: 1.0
Created-By: rsljdkt
Class-Path: .
Main-Class: Main
说明:
第一行指定清单的版本,若无,则JDK默认生成:Manifest-Version: 1.0
第二行指明创建的作者,若无,则JDK默认生成Created-By: 1.6.0_22(Sun Microsystems Inc.)
第三行指定主类所在类路径,
第四行指明程序运行的主类
2)使用jar命令进行打包:
jar cvfm counter.jar MANIFEST.MF -C bin .
说明:
参数f:指定打包后的包名。
参数m:指定自定义的MANIFEST.MF清单文件,否则,JDK会自动生成不包含Main-Class的默认清单。
参数c:指定是创建新的归档文件。
参数v:在标准输出中生成详细输出,该选项是可选的。
2. 使用-e参数指定入口点:
执行如下命令即可:
jar cvfe counter.jar Main -C bin .
方法二:使用Eclipse的Export功能:
一、打包成一般的jar包:
步骤如下:
1)在要打包的项目上右击,选择Export
2)在弹出的窗口中,选择Java -> JAR File,然后点击next按钮
3)在JAR File Specification窗口中,设置打包成的文件名和存放位置,点击两侧next
4)在JAR Manifest Specification窗口中,设置MANIFEST.MF清单文件的配置,
若仅仅打包成单纯的jar包的话,不用做任何修改,采取默认即可
若打包成可执行jar包的话,可以使用已存在的MANIFEST文件或者直接选择Main class
5)点击Finish按钮,完成打包。
二、打包成可运行的jar包
步骤如下:
1)在要打包的项目上右击,选择Export
2)在弹出的窗口中,选择Java -> Runnable JAR File,然后点击next按钮
3)在Runnable JAR File Specification窗口中,选择Launch configuration和Export destination
4)点击Finish按钮,打包完成。
-
android关于jar包重复、jar包类重复问题的解决
2020-07-14 15:10:19经常的,在android 开发中,项目普遍的喜欢引入大量的第三...因此复杂的依赖关系容易产生重复导入jar包,重复引用jar包类的问题。对此,也有响应的几个方法进行处理。 jar包重复导入 主要有本地 Jar 包重复嵌入和== Gr -
工具类打jar包
2019-08-22 16:29:551) 需要选择jar包默认运行的入口类 2) 需要设置MANIFEST.MF的位置 2.4 到这里导出jar还没有结束,继续点击Build–>Build Artifacts 2.5 继续如下的操作,导出jar 3. 在cmd运行jar 3.1 上述... -
JAVA-打包成jar包
2021-06-05 17:46:131.jar包无入口,只作为jar包,而不用运行 直接打包即可 目录: 1.执行打包命令: 结果: 2.编写测试类 package test; import test.A; public class Test { public static void main(S -
idea把工具类打Jar包
2018-09-25 18:47:27转载于: ...一、生成不带Manifest文件的Jar(不可以直接执行Jar) 1,首先打开Project Structure(Command+;)然后选择左边的Artifacts,再点上方的“+”号,来新建一个Artifact(按照Maven的说... -
maven打包可执行的jar包-包含依赖jar
2020-12-30 15:54:20maven打包可执行的jar包:1. 首先确保编辑器里maven环境正常2. 运行打包的jar文件3. 测试添加依赖后打包。4. 注意cmd命令传入中文参数乱码 1. 首先确保编辑器里maven环境正常 我这里已经有现成的maven环境和工具类了... -
Java程序打包成jar包
2021-03-06 03:38:02jar命令的用法:下面是jar命令的帮助说明:用法:jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...选项包括:-c 创建新的归档文件-t 列出归档目录-x 解压缩已归档的指定(或所有)... -
SpringBoot项目打成可执行jar包需要配置启动类,不写启动类可以打成普通jar包
2019-08-19 21:56:50一般来说是因为你依赖的jar包报错了,大部分是因为依赖的jar包是springBoot项目打包成的可执行jar包!不能被其他项目依赖。 SpringBoot项目打成的可执行jar包的独特之处: 1.多了一个插件 Spring Boot 中默认打包... -
为什么我打的jar包没有注解?
2018-10-15 13:25:08本文来自网易云社区作者:王飞一、前言一切问题的起源就是来自一个问题“为什么我打的jar包没有注解?”,带着这个疑问查了一圈资料,原来问题主要是在没有将源码中的注释进行抽取打包,自然我们在引用jar包的时候,... -
springboot打包包含本地在开发的jar报无法找到jar中类的问题
2019-06-19 09:44:35springboot打包问题:本地开发,启动项目中引入了另一个正在开发的jar,然后用eclipse maven install打包,运行发现报找不到引入jar中的类,网上搜索说有两种解决方式,1,在启动项目中添加lib将jar放入,然后修改pom打包;... -
如何通过maven打包可执行jar包
2021-11-04 15:44:062、只打包本项目的代码,不包括依赖的jar包,并且可以直接通过java -jar xxx.jar执行(应用场景:执行时依赖的jar包存在在本jar包外部,减少jar体积) 3、打包本项目的代码,同时将依赖的jar包解压后的文件复制到本... -
引入第三方jar包时,编译没有问题,运行时报错
2022-03-15 11:22:54因为业务的需要本地引入jar包,而不是在pom文件中引入 引入之后代码在编译时没有问题,代码也不报错,但是在运行时报java.lang.ClassNotFoundException 解决办法: 在pom文件中加入 <dependency> <... -
Intellij idea把工具类打Jar包,并混淆jar包之初体验(一)
2019-12-27 17:39:47一、生成不带Manifest文件的Jar(不可以直接执行Jar) 1,首先打开Project Structure(Command+;)然后选择左边的Artifacts,再点上方的“+”号,来新建一个Artifact(按照Maven的说法,所有生成的东西都可以叫作... -
Jar包版本查看方法
2021-02-28 18:09:15打开Java的JAR文件我们经常可以看到文件中包含着一个META-INF目录, 这个目录下会有一些文件,其中必有一个MANIFEST.MF,这个文件描述了该Jar文件的很多信息,下面将详细介绍MANIFEST.MF文件的内 容,先来看struts.... -
把Maven项目连同其依赖jar包一同打成jar包,并运行入口类
2017-11-10 17:57:54需求: ...因此i,现在就需要在打jar包的同时既要指定运行该jar包的入口类,又要连同第三方jar包一块打成jar包。 目录: 1.jar包和war包的区别; 2.package命令打jar包; 一、jar包和war包的 -
为什么打的jar包,引用的其它jar包里面的类运行时找不到报NoClassDefFoundError?
2018-11-28 16:28:08Web工程,部署在linux系统weblogic目录下, 所有jar包都在lib目录下,新打了个jar包,这个jar包里面的一个类引用了另一个jar包里面的类 ,然后运行时jvm却找不到这个类,NoClassDefFoundError,但这个类明明在... -
Gradle 打jar包报错xxx.jar中没有主清单属性 解决方案
2020-09-25 12:37:22最简单的解决方案: 使用shadowJar插件来打包。 注意⚠️: ‘Main-Class’:‘xxx’ x x x:程序的主类,也就是main方法所在的类。...这样打出的jar包就是可以运行的没有问题的jar包了。 ... -
通过maven,给没有pom文件的jar包生成pom文件,maven项目引入本地jar包
2018-07-19 16:49:16经常遇到公司私服或者中央仓库没有的jar包,然后通过各种渠道找到了解决问题的jar包,但是发现没有pom文件,maven项目引入之后,还有maven在本地仓库找不到对应jar包的pom文件,打包的时候会在私服下载对应jar包的... -
IDEA打包工具类jar并混淆
2020-07-31 11:45:26最近在做lincense授权功能,做了个license生成以及验证工具类,为了防止用户破解,需要打成jar包并混淆,在此记录一下。 生成jar idea中有个东西叫Artifacts,对于Maven来说,所有生成的东西都可以叫作Artifact,... -
java 启动jar包 报错找不到主启动类
2019-11-12 10:11:10springboot + maven 打包成jar包后,使用java jar命令启动jar包时,报错:Could not find or load main class org.springframework.boot.loader.JarLauncher 问题解决 需要在... -
idea web工程jar包找不到的问题
2020-05-08 14:46:542、把jar包放进去 3、project Structure 界面,左侧选择Libraries,点击加号,添加java Libraries。 4、弹出窗口选择WEB-INF文件夹下lib中的jar包,点击ok。 5、ok之后弹出Choose Modules 窗口,选择相应module,ok... -
IDEA打包jar包详尽流程
2019-04-08 23:11:59打包流程 1. 打开菜单栏File-Project ...3. 点击 "+" - JAR - From module with depenencies 4. 后弹出如下界面,自此开始,各种问题就来了 首先Module中,我SocketDemo的Module含有SocketDemo、SocketDe... -
运行jar包找不到依赖包的解决方法
2021-03-19 09:27:58将Java工程打成jar包,但第三方jar包并没有包含在包中,当在命令行中运行jar包时,出现类找不到的异常,解决办法1:将第三方jar包放到JRE的扩展类文件夹中(%JAVA_HOME%/jre/lib/ext),解决方法2:修改jar包的MANIFEST... -
w3c-dom.jar 包
2014-05-06 23:45:41w3c-dom.jar 包 dom解析xml使用 包 免积分下载 -
Java如何访问Jar包内部的Jar包资源
2018-05-21 18:23:00Java 的Jar包 的类加载 如何使得Java程序读取Jar包内部的Jar包 Spring Boot的Jar包内类加载原理 Java启动命令推荐方案 不处于 Maven 仓库环境下 处于 Maven 仓库环境下 引言 日常撸代码,肯定会遇见这样... -
1.IDEA明明已经导入了jar包为什么还是提示找不到类?
2021-01-13 10:35:511.检查jar包是否真的引入首先找到出错的位置,查看是否可以进到哪个类当中。比如在web容器和Spring容器在整合的时候要使用org.springframework.web.context.ContextLoaderListener这个类来在Web容器启动时启动Spring...