jad

Cannot run program "jad"解决方法

痴心易碎 提交于 2020-05-01 09:00:05
Cannot run program "jad"解决方法 错误: Cannot run program "D:\jad\work\jad.exe" (in directory "D:\jad\work\1428547596364" ) 当我们在装eclispe反编译工具遇到上诉错误的时候,我们需要配置在: windows->preferences-> java->jadClipse 配置jad的路径 如下图所示 jad的链接: http://pan.baidu.com/s/1c20vCwo 来源: oschina 链接: https://my.oschina.net/u/4000302/blog/4260348

FTY夺冠具体情况是什么此次

大城市里の小女人 提交于 2020-05-01 07:51:12
光明日报记者 董城 周世祥 靳晓燕 张景华 桃李花开日归来读书时。 虽然戴着口罩依然可以感知师生心中的欣喜和眼里发出的光芒。4月27日经历了史上最长寒假北京市254所学校敞开校门迎接49979名高三学子重新回归校园生活。 高三年级开学第一天北京市区主管领导、教育主管部门班子成员兵分13路深入全市16个区和燕山地区近30所中学通过实地检查、随机交流、走进课堂等形式督导各区各校开学第一天疫情防控和开学复课工作总体安全平稳有序。 防疫流程设计严格、温馨 早上7点北京一零一中学第一位入校的走读生经过检测后进入校园。 同学请看屏幕不用摘口罩往前一点。在学校工作人员指引下陆续到来的学生顺着红色导流带按照地面一米线指引相继通过身份识别、体温检测、双手消毒之后走进久违的校园。 在北京171中学高三年级8个班的260余名学生按照错峰到校方案在一个小时内相继来到学校门口不见排队现象始终平稳有序。服务网格作为一个改善服务到服务通信的专用基础设施层,是云原生范畴中最热门的话题。随着容器愈加流行,服务拓扑也频繁变动,这就需要更好的网络性能。服务网格能够通过服务发现、路由、负载均衡、心跳检测和支持可观测性,帮助我们管理网络流量。服务网格试图为无规则的复杂的容器问题提供规范化的解决方案 mixcloud.com/t3xoFHZLoQEgAz0/ mixcloud.com/RnqaYLUmmWpR7Op/

羞,Java 字符串拼接竟然有这么多姿势

故事扮演 提交于 2020-05-01 05:01:13
二哥,我今年大二,看你分享的《阿里巴巴 Java 开发手册》上有一段内容说:“循环体内,拼接字符串最好使用 StringBuilder 的 append 方法,而不是 + 号操作符。”到底为什么啊,我平常一直就用的‘+’号操作符啊!二哥有空的时候能否写一篇文章分析一下呢? 就在昨天,一位叫小菜的读者微信我说了上面这段话。 我当时看到这条微信的第一感觉是:小菜你也太菜了吧,这都不知道为啥啊!我估计正在读这篇文章的你也会有同样的感觉。 但扪心自问,在 我 做程序员的前两年内,我也不知道为啥。遇到 字符串 拼接就上“+”号操作符,甭管是不是在循环体内。和小菜比起来,我当时可没他这么幸运,还有一位热心的“二哥”能够分享这份价值连城的开发手册。 既然我这么热心分享,不如好人做到底,对不对?我就认认真真地写一篇文章,给小菜解惑一下。 01、“+”号操作符 要说姿势,“+”号操作符必须是字符串拼接最常用的一种了,没有之一。 String chenmo = "沉默"; String wanger = "王二"; System.out.println(chenmo + wanger); 我们把这段代码使用 JAD 反编译一下。 String chenmo = "\u6C89\u9ED8"; // 沉默 String wanger = "\u738B\u4E8C"; // 王二 System.out

深入理解java之关于switch的探究

只愿长相守 提交于 2020-04-27 19:07:25
switch 是Java条件语句语法之一。在多条件下相对于使用 if/else ,使用 switch 更为简洁。语法是: switch(表达式){ case 值1: 代码1;break; case 值2: 代码2;break; ... case 值n:代码n;break; default:代码n+1 } switch是根据表达式的值不同来执行不同的分支,具体来说,根据表达式的值找匹配的case,然后执行后面的代码,碰到break时结束,如果没有找到匹配的值则执行default都的语句。 需要注意的是: 表达式值得数据类型只能是 byte 、 short 、 int 、 char 、 枚举 、 String (java7)。 在switch语句中,表达式的值不能是null,否则会在运行时抛出NullPointerException。 在case子句中也不能使用null,否则会出现编译错误 case子句的值不能相同,也会编译不通过。 首先提问:switch是怎么实现的呢? 想要了解switch的实现原理,那先从条件语句执行的实现说起。序最终都是一条条的指令,CPU有一个指令指示器,指向下一条要执行的指令,CPU根据指示器的指示加载指令并且执行。指令大部分是具体的操作和运算,在执行这些操作时,执行完一个操作后,指令指示器会自动指向挨着的下一条指令。 但有一些特殊的指令,称为 跳转指令

得亏了它,我才把潜藏那么深的Bug挖出来

喜夏-厌秋 提交于 2020-04-18 04:10:27
2020年写了很多事故解决的文章,并不是我绞尽脑汁想出来的,而是真的遇到了这些问题。通过文章的方式记录下来,分享出去,才有意义。 事故背景 首先看下面的图吧,这是我从cat上截的图。 可以看到是一个Rpc调用的错误,从错误中我们只能分析出这个Rpc的请求成功了,并且返回了,因为都走到了反序列化这步。 最后是在创建DTO对象的时候报错了, Could not initalize class xxxxx.DTO 说明了这一点。 作为一个调用方,虽然看到了明确的错误,但还是要本着严谨的态度去排查问题,还是先确认服务提供者到底有没有问题,跟同事确认了,服务提供方没问题,通过telnet可以正常invoke。 好了,到这为止就把背景交代清楚了,能不能将这个潜藏的Bug找出来就各显身手吧。 arthas大显身手 要想效率高,那必须得有好用的工具呀!arthas挺身而出,都毛遂自荐了,不用白不用。 首先使用sc命令查看JVM已加载的类信息,就看这个不能实列化的类到底有没有被成功加载。 sc -d 类全路径 ( 打印类的详细信息 ) 类的信息都被打印出来了,足以证明这个类被加载了。 然后打印下类里面的字段,看看有没有丢失什么的 sc -d -f 类全路径 ( 打印 出 类的 Field 信息 ) 居然报错了,错误还跟我们之前在cat中看到的一模一样,这边也是要是创建对象,然后反射获取所有字段信息

String字符串性能优化的几种方案

独自空忆成欢 提交于 2020-04-18 04:07:11
String字符串是系统里最常用的类型之一,在系统中占据了很大的内存,因此,高效地使用字符串,对系统的性能有较好的提升。 针对字符串的优化,我在工作与学习过程总结了以下三种方案作分享: 一.优化构建的超大字符串   验证环境:jdk1.8   反编译工具:jad 1.下载反编译工具jad,百度云盘下载: 链接:https://pan.baidu.com/s/1TK1_N769NqtDtLn28jR-Xg 提取码:ilil 2.验证 先执行一段例子1代码: 1 public class test3 { 2 public static void main(String[] args) { 3 String str="ab"+"cd"+"ef"+"123" ; 4 } 5 } 执行完成后,用反编译工具jad进行反编译:jad -o -a -s d.java test.class 反编译后的代码: 1 // Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov. 2 // Jad home page: http://www.kpdus.com/jad.html 3 // Decompiler options: packimports(3) annotate 4 // Source File Name: test.java 5

HSF接口 报错问题排查--阿里大牛的技术功底。。。开眼了。。。

对着背影说爱祢 提交于 2020-04-17 21:28:43
遇到一个诡异的问题: 注意这个方法:我在mz-sys中定义了这个方法:请注意是参数是大Long 不是小long; /* * * hsf 勿动接口,交易结算都在用 * 根据ID查询 * * @param promotionId 参数 * * hsf这个接口有问题 * @return ResultData<PromotionChannelDTO> */ ResultData <PromotionChannelDTO> getPromotionChannelById(Long promotionId); 这个 hsf方法,对方在调用的时候,有时候是好的,有时候有问题,非常奇怪; 我的解决方法: (1)首先去代码里面看看是不是有个这个方法,确实有,也部署到服务器上了,二方包版本也正确。 (2) 于是我把mz-sys的 日常机器和 天启机器全部下掉了; 方法参考: 删除日常和天启机器 新上了两台机器,但是还是不行,一会儿 有错,一会儿 没错, (3) 后来使用了 jad 发现 这个类的参数跟以前比不同了 jad 是个反编译软件 参考: jad使用 jad的安装: jad安装 具体为:选择管理员==> 2、管理员这里选择 组管理员==> 3、进来之后就可以执行: (a) curl -L http://start.alibaba-inc.com/install.sh | sh 然后:as.sh

让JAD反编译工具我发现了很多有意思的程序

痴心易碎 提交于 2020-03-24 16:17:42
3 月,跳不动了?>>> 本文参考原文- http://bjbsair.com/2020-03-22/tech-info/5702/ jad反编译工具,已经不再更新,且只支持JDK1.4,但并不影响其强大的功能。 基本用法:jad xxx.class,会生成直接可读的xxx.jad文件。 自动拆装箱 对于基本类型和包装类型之间的转换,通过xxxValue()和valueOf()两个方法完成自动拆装箱,使用jad进行反编译可以看到该过程: public class Demo { public static void main(String[] args) { int x = new Integer(10); // 自动拆箱 Integer y = x; // 自动装箱 } } 反编译后结果: public class Demo { public Demo(){} public static void main(String args[]) { int i = (new Integer(10)).intValue(); // intValue()拆箱 Integer integer = Integer.valueOf(i); // valueOf()装箱 } } foreach语法糖 在遍历迭代时可以foreach语法糖,对于数组类型直接转换成for循环: // 原始代码 int[]

class反编译插件

南楼画角 提交于 2020-03-02 02:55:44
1、下载 jadclipse插件 注意:jadclipse_3.1.0.jar版本,该版本支持eclipse3.1M6~3.2M2 jadclipse_3.2.0.jar版本,该版本支持eclipse3.2M3和eclipse3.2M4. jadclipse_3.2.4.jar版本,该版本支持eclipse3.2M5~3.3M5 jadclipse_3.3.0.jar版本,该版本支持eclipse3.3M6及以上 2、下载jad.exe,并将下载好的jad.exe拷贝到jre的bin的目录下,或者把jad的执行文件的绝对路径加入到环境变量PATH中。 3、配置jadClipse,在在%ECLIPSE_HOME%\目录下建立myplugins\jadclipse\eclipse\plugins的目录结构,将jadclipse_3.3.0.jar(用于Eclipse3.5)放到plugins目录下面,再在%ECLIPSE_HOME%\links目录下面建立jadclipse.link的文件(名字可以随便取),jadclipse.link的内容为:path=..\\jadclipse(注意一定要双反斜杠"\\") 4、重新启动eclipse,查看 window->preferences->java->jadClipse,如果出现jadClipse则说明上述配置成功,否则检查上述配置。 5

在Eclipse中反编译Class文件的方法

青春壹個敷衍的年華 提交于 2020-03-02 02:55:04
学习中,需要反编译Java的class文件。我的开发工具是windows xp+Eclipse3.2.2+MyEclipse。我找到了jad反编译工具,在互联网上找到了一些很有用的安装步骤。下面记录了我的安装过程。   一、下载   1。下载 jad 工具,在官方网站没有下载到,在CSDN上可以下载。   2。下载插件 net.sf.jadclipse_3.3.0.jar。   二、安装   1。安装jad工具。下载后解压,然后将解压后的jad.exe文件复制到%JAVA_HOME%\bin目录下面(可以将jad.exe放到任意位置,只要记住其存放路径就好,下面要用到)。   2。安装插件。Eclipse中的插件安装可以参考:Eclipse使用技巧(三)Eclipse中插件的安装。   我用复制的方法:直接把net.sf.jadclipse_3.3.0.jar拷贝到%ECLIPSE_HOME%\plugins目录下。   把使用link的方法拷贝到下面:建立D:\Myplugins\net.sf.jadclipse_3.3.0\eclipse\plugins的目录结构,将jadclipse_3.2.4.jar放到plugins目录下面(注:其中D:\Myplugins为你自己定义的一个专门放置插件的目录)。再在%ECLIPSE_HOME%\links目录下面建立一个net.sf