jar文件运行不了怎么办?,第1张

可能jar文件损坏了,你可以尝试用winrar打开这个jar文件,把它解压,看有没有报错,如果报错,说明文件损坏了。

打包成jar文件后运行出现Invalid or corrupt jarfile 解决

打jar包

1。jar -cvf hello。jar hello。class

2。这时java -jar hello。jar 是运行不了的

3。解压刚打的Jar包到新的目录,会发现里边多了一个META-INF文件夹里边有一个MANIFEST。MF文件

4。用记事本打开MANIFEST。MF文件,修改为

Manifest-Version: 1。0

Main-Class: Hello

Created-By: aaa

5。将MANIFEST。MF复制到和Hello。class 放在一起

然后打包:

jar cvfm abc。jarMANIFEST。MFHello。class

得到可运行的jar

java -jar     就可以运行的jar包[ 其中为jar包名]

在IT软件界,Java一直占据着大半壁江山,Java的生态圈环境很好,有着很多优秀的框架,而 Spring Boot 作为Spring框架中的代表,这几年也越来越火。

Spring Boot是用来简化Spring应用的配置和开发过程的,此框架采用了“约定优于配置”的理念, 免去了繁琐的XML配置 ,使我们开发项目更简单。而且Spring Boot提供了两种项目打包方式:生成war文件、生成可执行的jar文件,很多Java开发者不清楚这两种项目打包方式的区别,生产环境该选哪种方式呢?

1、war包方式部署

war包其实是打包后的Java Web工程, 本质上是个压缩包 ,里面包含了很多目录及文件,我们把war包放入Tomcat这类容器中启动后,war包就会自动解压出一个同名的文件夹来。

注意:Spring Boot项目如果要打包成war包来部署,是需要修改项目入口文件代码的。另外由于Spring Boot内置了Tomcat容器,所以打包成war包时要将内置的Tomcat依懒排除掉。

2、可执行jar文件方式部署

Spring Boot框架默认的打包部署方式是生成一个可执行的jar文件,无论项目多么复杂,依懒包有多少,最终只有一个jar文件(有些可能有外置的配置文件),在任何一台装有JRE/JDK环境的服务器上可以直接以 java -jar xxjar 这种方式来运行(其实是靠内置的Tomcat来运行的),十分方便。

可执行jar文件方式部署是我们推荐的 ,特别是在微服务场景下部署更便捷。

无论是war方式还是jar方式,本质上差别并不大。在生产环境下还是要选择合适的方式。

综上,如果服务器配置高、节点多、微服务方式,建议选择jar方式部署;如果服务器配置跟不上,建议选择war方式部署(省内存空间)。

设置JVM内存的参数有四个:

-Xmx   Java Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定;

-Xms   Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;

-Xmn   Java Heap Young区大小,不熟悉最好保留默认值;

-Xss   每个线程的Stack大小,不熟悉最好保留默认值;

2 如何设置JVM内存分配:

(1)当在命令提示符下启动并使用JVM时(只对当前运行的类Test生效):

java -Xmx128m -Xms64m -Xmn32m -Xss16m Test

(2)当在集成开发环境下(如eclipse)启动并使用JVM时:

a 在eclipse根目录下打开eclipseini,默认内容为(这里设置的是运行当前开发工具的JVM内存分配):

-vmargs  

-Xms40m  

-Xmx256m

-vmargs表示以下为虚拟机设置参数,可修改其中的参数值,也可添加-Xmn,-Xss,另外,eclipseini内还可以设置非堆内存,如:-XX:PermSize=56m,-XX:MaxPermSize=128m。

此处设置的参数值可以通过以下配置在开发工具的状态栏显示:

在eclipse根目录下创建文件options,文件内容为:orgeclipseui/perf/showHeapStatus=true

修改eclipse根目录下的eclipseini文件,在开头处添加如下内容:

-debug  

options  

-vm  

javawexe

重新启动eclipse,就可以看到下方状态条多了JVM信息。

在部署zhihudemo时,没有用Jenkins这种自动化部署工具,在linux centos中部署jar包项目时遇到一个坑,通过xshell远程连接服务器,在系统中使用“java -jar”命令启动jar包时,输出日志会占据当前终端页面,如果关闭终端窗口的话,整个java程序就将停止,为了解决这个问题,可以将jar包设置为后台服务,并进一步设置为系统服务和开机自启

在/etc/initd/目录下创建zhihudemoServicesh脚本如下:

将zhihudemo-001-SNAPSHOTjar和zhihudemoServicesh加上执行权限:

添加到chkconfig作为系统服务,并设置开机启动:

执行完成后重启,查看启动日志,可以看到该jar包程序已经作为守护进程在系统后台运行

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » jar文件运行不了怎么办?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情