序言
用的比较多的是java -jar ,你说非要把引用的jar、相关的配置文件、业务Jar都分开放置,以节省后期不同版本的业务Jar上传的时间,我个人觉得没有必要. 同时也在跟其它技术想冲突了,比如配置文件现在都用配置中心, 我们的业务Jar都会生成Docker 镜像 . 如果没有使用配置中间以及Docker技术这样子玩还可以[email protected]
java -jar
# 依赖jar包、配置文件、业务jar 都放在一起启动
java -jar xxxxxx.jar
#依赖jar包 跟业务jar包分离 ,使用Dload.path来指向依赖jar的目录
java -Dloader.path=lib -jar xxxxxx-app.jar
java -server与-client
可以通过-server或-client设置jvm的运行参数。
它们的区别是Server VM的初始堆空间会大一些,默认使用的是并行垃圾回收器,启动慢运行快。
Client VM相对来讲会保守一些,初始堆空间会小一些,使用串行的垃圾回收器,它的目标是为了让JVM的启动速度更快,但运行速度会比Serverm模式慢些。
JVM在启动的时候会根据硬件和操作系统自动选择使用Server还是Client类型的 JVM。
32位操作系统
如果是Windows系统,不论硬件配置如何,都默认使用Client类型的JVM。
如果是其他操作系统上,机器配置有2GB以上的内存同时有2个以上CPU的话默认使用server模式,否则使用client模式。
64位操作系统
只有server类型,不支持client类型。
#与 -jar 区别不大 自行理解吧
java -server -Xmx1024m -Xms256m -Xmn512m -Xss256k -Dloader.path=lib -jar xxxxxx-app.jar
java -cp
使用-cp
命令启动时,用法与-server
配合-classpath
使用时类似,(-classpath就是用于告诉业务Jar 所依赖的jar或者启动的配置文件的位置,多个路径使用:来进行连接[email protected])
不同的是不能与-jar
命令一起使用,使用-cp
命令时-jar
便会失效
#如下所示 java会在目录 /lib 和/conf中 合并内容来启动工程,多个路径使用:来分隔,启动类是Mainclass
java -cp /lib:/conf MainClass