+
 新版

spring boot打包的jar如何解压后运行?

bearcat 发布于 2017/09/29 09:13
阅读 6K+
收藏 4

项目里面用spring boot开发.项目在测试过程中每次打包成jar上传到测试服务器.

因为jar会比较大. 上传时间就会比较长.这样在测试的时候实在不是很方便.

如何能实现将jar解压后可以执行使用jar命令或其他方式运行?以便修改的时候只需要上传替换修改后的文件.

使用内置tomcat。

加载中
3
battyman
battyman

spring boot打包的jar结构都是相同的,用的是org.springframework.boot.loader.JarLauncher进行启动的,所以直接在解压后的目录下执行:

java org.springframework.boot.loader.JarLauncher

 

b
bearcat
这个不错,可以直接运行。感谢。
0
孤丶狼丶
孤丶狼丶

不是可以直接java -jar 运行吗?或者可以选择打包成war或者直接在build之后的target文件夹里面拷出来用啊。

b
bearcat
java -jar是没有问题的。 我把xxx.jar解压开后,是否有什么方式可以运行?
0
Feng_Yu
Feng_Yu

如果容量已经成为了你关心的指标,那么微服务架构可能是你需要的

0
Kit_lee
Kit_lee

楼主问的应该是每次更新需要上传一整个JAR包实在太大了,想每次只更新一部分。如果是WINDOWS服务器,这个比较简单,服务器安装个WINRAR,将要更新的部分CLASS文件上传到服务器后,在服务器中使用WINRAR打开JAR包,将更新文件拖放方式放到JAR包中替换即可,记得要先停掉运行中的JAVA进程

如果是LINUX服务器,原理也是一样,参考以下步骤:

1. 先用jar -tvf {war | jar} 看一下文件中 要替换文件的路径

2. 用jar -xvf {war | jar} {dest} 解压出要替换的文件,包括文件所在的目录路径

3. 再将新文件替换解压之后的目录结构中的文件

4.  最后 jar -uvf  {war | jar}  {dest} 重新打包成JAR

b
bearcat
这种方式写一个shell也不是特别方便.不过确实是一种解决方式。
0
Kit_lee
Kit_lee

将jar解压出来运行就失去打jar包的意义了,还不干脆将项目转成war包输出发布

0
阿信sxq
阿信sxq

你打爆参数可以只打包自己的代码,将所有的依赖单独打包,运行命令用参数包含进去,那样就小的多

0
b
bearcat

引用来自“battyman”的评论

spring boot打包的jar结构都是相同的,用的是org.springframework.boot.loader.JarLauncher进行启动的,所以直接在解压后的目录下执行:

java org.springframework.boot.loader.JarLauncher

 

非常不错。就是希望采用这样的方式来做。感谢。

0
叫我刀刀
叫我刀刀

楼主问的应该是网速问题,  为什么没人提供便宜的宽带套餐 ? 

0
雨翔河
雨翔河

java org.springframework.boot.loader.JarLauncher

0
f
fixfirfor

提供一个思路: idea里运行springboot项目的时候其是直接运行的main方法并指定了所有的maven依赖到classpath里面. 这样运行速度会比直接运行java -jar的启动速度会高很多 ,不信你们试试看

 

回到这里的问题, 如果要解压运行,一种是使用常规的命令:  

java org.springframework.boot.loader.JarLauncher

另外就是直接运行main 方法. 大概的命令如下:

 

java -cp=xxx.jar:xxx.jar com.package.to.yourmain.class

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部