最新修改 以前写的打包方式可能看起来有些繁琐,这里给出进一步简洁的解决方案简单粗暴
Java Number类是Java中的一个抽象类,它是所有数值类型的超类,包括整数、浮点数和大数。它提供了一组用于操作数值类型的方法,如转换、比较、算术运算等。
①比较VS2019和VS Code,Visual Studio 2019支持C#/C++/Python/Node.js,安装VS2019,腾讯云好几种SDK都能使用了,真方便,但是不支持Java,而VS Code轻量支持Java,够用了
虽然写起动shell的频率非常不高。。。但是每次要写都要对付一大堆的jar文件路径,新加jar包也必须要修改起动shell。
使用反射在NET中实现动态工厂<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 出处 http:
Maven可以使用mvn package指令对项目进行打包,如果使用Java -jar xxx.jar执行运行jar文件,会出现"no main manifest attribute, in xxx.jar"(没有设置Main-Class)、ClassNotFoundException(找不到依赖包)等错误。
在 springboot 项目中,除了启动类的主函数 mainclass,如果还出现其他的 main 方法,本地运行是没有任何问题,但是在打包 package 时,就会报错,说 repackage 时,在项目中有多个候选的主方法。这时候,我们就需要在 maven 的 pom.xml 文件中指定打包时的 mainClass,具体是在 spring-boot-maven-plugin 中指定,配置如下:
maven默认打包生成的jar是不能够直接运行的,因为在jar文件的META-INF/MANIFEST.MF文中没有Main-Class一行,为了生成可执行的jar文件,需要借助maven的插件,maven-shade-plugin,配置该插件如下:
程序员免不了要与windows和linux打交道,在windows写启动脚本时要要用到bat,而在linux时则要使用到shell脚步。shell脚步具有严格的格式,稍不注意就会出问题,今天分享一个小经验,但是受益程序员终身。下面是网上找来的一段shell脚本:
本地测试 编译源码 mvn compile mvn install 启动服务 源码启动方式 1 2cd cd server mvn exec:java -Dexec.mainClass="com.alibaba.fescar.server.Server" -Dexec.args="8091 /Users/m65536/Downloads/fescar-server-0.1.0/data" release包启动方式 1sh fescar-server.sh 8091 /Users/m6
默认打包生成的jar是不能直接运行的,因为带有main方法的信息不会添加到mainifest中,需要借助maven-shade-plugin
不知道在座的各位朋友是否跟我一样,初学Java时写下的第一段代码就是类似下面这段代码:
1 方法一:使用maven-jar-plugin和maven-dependency-plugin插件打包
flink yarn flink on yarn有两种模式,分别是session cluster和per job
使用 ide 进行开发时,直接在ide上启动即可,如果要放到服务器上进行使用,就必须打成jar包,这里使用 maven 的打包插件进行打包。注意 <mainClass>com.devops.WebApplication</mainClass> 这行要改成你的启动类。
要打包的话,依然是maven,当然要跳过test,否则依然会报错java.awt.headlessException,
Alternatively use "${project.build.directory}/classes/lib" as OutputDirectory to integrate all jar-files into the main jar, but then you will need to add custom classloading code to load the jars. 如上,上面可以将依赖的jar包copy到 target下面的 lib/ 目录下。然后生成jar包。 注意一点是,你的jar包只是包含你自己的代码,并不会把lib/目录下的jar一起打进你的jar中去。 这个时候,你可以执行 java -jar theMainClass 来运行你的程序。 如果你想把所有的依赖jar都打包到你的jar里面去,成为单个jar。 那么你可以将 dependency-plugin 的output设置为 "${project.build.directory}/classes/lib" 这样就可以打成单个jar包了。 但是,这个时候,你执行 java -jar theMainClass 来运行的话,是运行不了的哦。会报ClassNotFound。 至于原因见下面: 你是否在使用java -jar参数运行打包好的jar应用程序的时候发现应用程序无法找到classpath下设置好的第三方类库的内容?无论怎么设置classpath参数都无济于事,总是会报ClassNotFound的错误?那么本篇帖子可以帮助你摆脱烦恼 :) 当 用java -jar yourJarExe.jar来运行一个经过打包的应用程序的时候,你会发现如何设置-classpath参数应用程序都找不到相应的第三方类,报 ClassNotFound错误。实际上这是由于当使用-jar参数运行的时候,java VM会屏蔽所有的外部classpath,而只以本身yourJarExe.jar的内部class作为类的寻找范围。 via: http://hi.baidu.com/daniel_tu/item/12e5434215c4052310ee1e8e 至于解决办法,上面的文章中有提到。个人觉得较好的是写个自定义的classLoader,来加载jar包内部的lib/目录下的class。 至此, 1).你通过maven来打一个可执行的jar包,要么选择不要把依赖jar包打到一起,而选择放在jar包外面的 lib/目录下。这样是可以的。 2).你也可以把依赖jar打到jar包内部,成为单个jar,是可以做到的,但通过java -jar方式执行会找不到类,需要自定义classLoader. 介绍第三种思路,允许打单独jar包,同时也可以通过 java -jar 来执行。 这种思路是将所有的依赖jar包解压开来变成class,打进我们的jar包里面去。POM如下:
方法一:使用maven-jar-plugin和maven-dependency-plugin
Java程序 运行在linux主机上, 通过shell脚本启动为进程。 Java程序中 通过定时任务,设置访问Hbase的时间间隔,设置告警规则,比如三次获取Hbase中的数据失败,则调用存过,遍历配置的告警号码,插入短信中间表,实现短信的发送。 项目结构如下
在写Java程序的时候,当一个类找不到的时候,JVM有时候会抛出ClassNotFoundException异常,而有时候又会抛出NoClassDefFoundError。看两个异常的字面意思,好像都是类找不到,但是JVM为什么要用两个异常去区分类找不到的情况呢?这个两个异常有什么不同的地方呢?
项目中有的非spring boot的服务需要发布,也可以使用maven-assembly-plugin插件来制作可执行jar包 生成可执行jar包 pom.xml配置文件 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>3.3.0</version> <configuration> <a
使用开源工具进行 ZooKeeper 的性能测试,参考官方文档,通过 mvn -DZooKeeperVersion=<version> package 进行打包。但是为了使用方便,我把所有的依赖包都打成一个大的 jar 包了,所以在 pom.xml 文件加上下面的插件,然后再执行命令 mvn assembly:assembly 即可。
##直接打包,不打包依赖包 直接打包,不打包依赖包,仅打包出项目中的代码到JAR包中。在POM中添加如下plugin即可,随后执行maven install
xargs结合管道操作符|,可以完成很多看似复杂的问题: 1、快速删除所有.log日志文件 机器运行久了,就会有各式各样的日志文件,散落在各个目录下,可以利用下面的方法: find ./ -name '*.log' | xargs rm -rf 上面的代码,先把当前目录及子目录下的所有后缀是log的文件找出来,然后做为参数,传递给 rm -rf ,这样就把日志文件给干掉了。 2、根据名字找到运行的进程并杀掉 比如:有一个java程序在服务器上,我们在写部署脚本时,要先把之前在运行的程序kill掉,如果只知道
简单工厂模式属于创建型模式,又叫做静态工厂方法(Static Factory Method)。简单工厂模式是由一个工厂对象决定创建哪一种产品类实例。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为不同工厂模式的一个特殊实现
src/java.base/share/native/launcher/main.c
此外,我们将通过具体的示例来展示如何在Spring Boot应用程序中配置和使用Jar包的动态加载,以提高系统的灵活性和可扩展性。
springboot打jar包先加入依赖 <plugin> <groupId>org.apache.maven.plugins</groupId> <arti
在正确编译好java程序之后,打包,然后在命令行输入java -jar ,却弹出没有主清单属性或者找不到或无法加载主类。
正如您可能从问题本身可以理解的那样,我是Java的新手。我进行了一个练习,编写一个Java程序,该程序接收一个字符,将其打印并输出Unicode表中的下一个字符。
SpringBoot项目中的启动类,一般都是XXApplication,例如StatsApplication,UnionApplication。每个项目的启动类名称都不一样。但是它的启动类真的是XXApplication吗?
上一次实现了前后端分包,每次可以单独管理前端或者后端程序的上线,从而方便维护。但是随着例行维护发现,springboot每次整体打包,都要往服务器传递近百来兆的一个大的jar包,非常费力,所以就想着进行一个简单的优化,从而使每次上传的量尽量小。
我们找到打包好的jar包,以压缩包的形式打开,找到META-INF文件下的MANIFEST.MF文件。
简单直接的想法就是想通过打出来的jar能够直接java -jar 运行,主要是想做一些小的工具运行程序,比如加解密的小程序
https://blog.csdn.net/yjgithub/article/details/80475521
maven打包生成的普通jar包,只包含该工程下源码编译结果,不包含依赖内容。同时,maven提供以下方式生成包含所有依赖的jar文件,依赖以class的方式存在; 将此plugin添加到pom文件中
注意:做好不要把匿名对象不可以当做锁对象,因为不能保证两个锁对象是同一个对象,这样就只能锁住类了。
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> // 明确指定启动类 <mainClass>com.xxx.XxxApplic
SpringBoot 部署起来虽然简单,如果服务器部署在公司内网,速度还行,但是如果部署在公网(阿里云等云服务器上),部署起来实在头疼:编译出来的 Jar 包很大,如果工程引入了许多开源组件(SpringCloud 等),那就更大了。
Spring Boot应用程序的主类是一个类,它包含一个启动Spring ApplicationContext的public static void main()方法: @SpringBootApplication public class MyApplication { public static void main(String[] args) { . .... } } 默认情况下,如果未明确指定主类,则Spring将在编译时在类路径中搜索,如果找不到或发现
对于第三方引入的jar包,如果通过 ${project.basedir} 加载项目中的第三方jar包,可以编译运行,但是第三方jar包打不进去,具体可以看 下一篇 <?xml version="1.
用如下插件 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.6</version> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef>
解决方案: <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>com.loongship.web.ApiWebApplicatio
今天springboot项目install报错出现多个主类的问题,最后看这篇博客在pom.xml中指定了主类解决了
版权声明:本文为CSDN博主「yjgithub」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/yjgithub/article/details/80475521
会在项目的target目录下生成一个xxx-jar-with-dependencies.jar的jar文件,双击运行即可!
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>
领取专属 10元无门槛券
手把手带您无忧上云