JAVA
lishengping_max
专注大数据领域
展开
-
java语言使用Runtime调用py文件出现 Cannot run program “python“系统找不到指定文件
使用Runtime.getRuntime()执行python脚本文件,出现Cannot run program错误,如下使用Runtime.getRuntime().exec有两种情况:方法一:如果系统找不到python命令或者找不到文件会报此错误;方法二(方便传含空格参数):需要在demo2.py中定义文件执行程序,如果不定义则程序找不到执行命令,也报错Cannot run program "python“系统找不到指定文件demo1.pyarg = sys.argv[1:]a = arg[0]原创 2021-12-19 16:02:43 · 2644 阅读 · 0 评论 -
Java如何进行Base64的编码(Encode)与解码(Decode)
一、使用Java7之前使用Apache Commons CodecJava8之后使用Java 8的java.util套件关于base64编码Encode和Decode编码的几种方式Base64是一种能将任意Binary资料用64种字元组合成字串的方法,而这个Binary资料和字串资料彼此之间是可以互相转换的,十分方便。在实际应用上,Base64除了能将Binary资料可视化之外,也常用来表示字串加密过后的内容。如果要使用Java 程式语言来实作Base64的编码与解码功能,可以参考本篇文章的作法。转载 2020-07-09 15:19:22 · 270 阅读 · 0 评论 -
JCE cannot authenticate the provider BC
根据以下博文:https://blog.csdn.net/study4034/article/details/79632495知道bcprov-jdk15on必须分开打包,否则签名会失效本人用的shade打包方式将依赖配置如下 <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15on</art原创 2020-05-15 18:09:24 · 346 阅读 · 0 评论 -
lombok使用builder的坑
使用@builder后报错如下 需要: 没有参数 找到: java.lang.String,java.lang.String,java.lang.String,java.lang.Integer 原因: 实际参数列表和形式参数列表长度不同原因:由于继承的原因,我手动添加了无参构造,导致@builder自动生成全参构造失败,而查看相关资料发现@builder是使用全参数构造。所以导...原创 2019-08-01 11:17:03 · 2040 阅读 · 0 评论 -
查看jar包的JDK版本
方法一:通过IDEA等开发工具查看导入jar包后,直接查看class类,文件上面就会显示字节码版本方法二:通过反编译.class文件来查看。解压jar包,得到.class文件。用JDK自带的javap反编译.class文件,用如下命令:javap -v JavaSource.class 查看得到的信息中,major version属性的内容,如下:major version: 52...原创 2019-01-04 16:18:59 · 1731 阅读 · 1 评论 -
记一次日志包冲突,导致日志不打印问题
项目在window上开发无问题,但部署到linux后,日志不打印,经过排查发现项目中存在log4j-slf4j-impl-2.7.jar和logback-core-1.1.7.jar两种slf4j实现,导致日志无法打印。启动日志为Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support wa...原创 2018-10-29 21:30:03 · 1308 阅读 · 0 评论 -
Java中支持深浅拷贝的第三方库
深拷贝 1.Apache旗下的Commons-Lang3包有一个序列化的工具SerializationUtils,可以做深拷贝。当然前提是你的类实现了序列化接口。SerializationUtils.clone(Serializable object)2.Java Deep Cloning Library是我觉得最好用的一个。它的深拷贝通过反射实现,适合用于你 不能控制的第三方类或者没...原创 2018-09-10 10:25:53 · 1381 阅读 · 0 评论 -
如何定位cpu占用率高的java线程
1.查看cup的使用情况,在Linux下可以使用 top 或者 htop命令top -u ${用户} -c top -u devops -c 在命令行提示符执行top命令,输入大写P,则结果按CPU占用降序排序。输入大写M,结果按内存占用降序排序。大写T按运行时间排序。(注:大写P可以在capslock状态输入p,或者按Shift+p)。2.查看jvm的进程ID,可以通过...转载 2018-04-27 17:17:35 · 1179 阅读 · 0 评论 -
Executor并发框架——Executors工厂类
开发中主要使用Executors提供的工厂方法创建线程池,返回的线程池都实现了ExecutorService接口。Executors还包括ExecutorService、ScheduledExecutorService、Callable 类的工厂和实用方法。下面介绍使用最多的四种创建线程池方法 Executors.newCachedThreadPool() Executors.new原创 2018-01-27 16:13:48 · 439 阅读 · 0 评论 -
Executor并发框架——ThreadPoolExecutor
一、介绍 ThreadPoolExecutor为ExecutorService的默认实现。自定义线程池,可以用ThreadPoolExecutor类创建,它有多个构造方法来创建线程池。public class ThreadPoolExecutor extends AbstractExecutorService { ..... public ThreadPoolExecuto原创 2018-01-27 17:41:36 · 506 阅读 · 0 评论 -
Java反射
一、基本介绍Java反射机制可以的运行期(Runtime)获得任何一个类的字节码。包括接口、变量、方法等信息。还可以让我们在运行期实例化对象,通过调用get/set方法获取变量的值。 1. Java反射包名为:java.lang.reflect 。以下为常用的接口和类 接口 - Type 是 Java 编程语言中所有类型的公共高级接口。 - ParameterizedType 表原创 2017-11-29 21:07:56 · 159 阅读 · 0 评论 -
JAVA自定义异常
如果要自定义异常类,则扩展Exception类即可,因此这样的自定义异常都属于检查异常(checked exception)。如果要自定义非检查异常,则扩展自RuntimeException。按照国际惯例,自定义的异常应该总是包含如下的构造函数:一个无参构造函数 一个带有String参数的构造函数,并传递给父类的构造函数。 一个带有String参数和Throwable参数,并都传递给父类构造函数转载 2017-10-24 19:46:11 · 399 阅读 · 0 评论 -
Java日志框架使用注意点
一、应用中不可直接使用日志系统(Log4j、Logback)中的API,而应依赖使用日志框架SLF4J中的API,使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一。import org.slf4j.Logger;import org.slf4j.LoggerFactory;private static final Logger logger = LoggerFactory.getLo原创 2019-09-04 15:10:11 · 191 阅读 · 0 评论 -
Java命令行参数类 Commons CLI使用
Commons CLI库是apache的一个子项目,比较起来,其使用方法相对规范。 http://commons.apache.org/proper/commons-cli/package Test;import org.apache.commons.cli.BasicParser;import org.apache.commons.cli.CommandLine;import org.apa原创 2017-05-21 18:55:24 · 4258 阅读 · 0 评论