JAVA反编译工具为什么反编译完,有try{}catch{}的部分都有问题,无法编译通过,如反编译出2个return来…… ( 积分: 100 )

  • 主题发起人 主题发起人 10End
  • 开始时间 开始时间
1

10End

Unregistered / Unconfirmed
GUEST, unregistred user!
JAVA反编译工具为什么反编译完,有try{}catch{}的部分都有问题,无法编译通过,如反编译出2个return来:
public String ***(){
...
...
return null;
...
...
return ***;
}
有没哪个反编译工具可以解决该问题?谢谢!
 
JAVA反编译工具为什么反编译完,有try{}catch{}的部分都有问题,无法编译通过,如反编译出2个return来:
public String ***(){
...
...
return null;
...
...
return ***;
}
有没哪个反编译工具可以解决该问题?谢谢!
 
小颖Java源代码反编译专家
我一直用这个,还没有出现过你说的问题。
 
我下了小颖Java源代码反编译专家V1.4,反编译的代码和源代码都放在下面,的确有try{}exception{}问题:
反编译的代码:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi
// Source File Name: DateTime.java
package com.xxxx.tool;
import java.io.PrintStream;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateTime
{
public DateTime()
{
}
private static String[] ParseDate(Date dDate)
{
String aResult[];
aResult = new String[7];
Calendar ca = Calendar.getInstance();
ca.setTime(dDate);
aResult[0] = ca.toString(ca.get(1));
aResult[1] = ca.toString(ca.get(2) + 1);
aResult[2] = ca.toString(ca.get(5));
aResult[3] = ca.toString(ca.get(11));
aResult[4] = ca.toString(ca.get(12));
aResult[5] = ca.toString(ca.get(13));
aResult[6] = ca.toString(ca.get(1));
if(aResult[1].length() == 1)
aResult[1] = "0"
+ aResult[1];
if(aResult[2].length() == 1)
aResult[2] = "0"
+ aResult[2];
if(aResult[3].length() == 1)
aResult[3] = "0"
+ aResult[3];
if(aResult[4].length() == 1)
aResult[4] = "0"
+ aResult[4];
if(aResult[5].length() == 1)
aResult[5] = "0"
+ aResult[5];
return aResult;
Exception ex;
ex;
return null;
}
}
源代码:
package com.xxxx.tool;
import java.util.*;
public class DateTime {
public DateTime() {
}
private static String[] ParseDate(Date dDate) {
try {
String[] aResult = new String[7];
java.util.Calendar ca = java.util.Calendar.getInstance();
ca.setTime(dDate);
aResult[0] = Integer.toString(ca.get(ca.YEAR));
aResult[1] = Integer.toString(ca.get(ca.MONTH) + 1);
aResult[2] = Integer.toString(ca.get(ca.DATE));
aResult[3] = Integer.toString(ca.get(ca.HOUR_OF_DAY));
aResult[4] = Integer.toString(ca.get(ca.MINUTE));
aResult[5] = Integer.toString(ca.get(ca.SECOND));
aResult[6] = Integer.toString(ca.get(ca.YEAR));
if (aResult[1].length() == 1) {
aResult[1] = "0"
+ aResult[1];
}
if (aResult[2].length() == 1) {
aResult[2] = "0"
+ aResult[2];
}
if (aResult[3].length() == 1) {
aResult[3] = "0"
+ aResult[3];
}
if (aResult[4].length() == 1) {
aResult[4] = "0"
+ aResult[4];
}
if (aResult[5].length() == 1) {
aResult[5] = "0"
+ aResult[5];
}
return aResult;
}
catch (Exception ex) {
return null;
}
}
}
 
我把你给的代码编译成class
反编译的程序如下:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi
// Source File Name: DateTime.java
import java.util.Calendar;
import java.util.Date;
public class DateTime
{
public DateTime()
{
}
private static String[] ParseDate(Date dDate)
{
try
{
String aResult[] = new String[7];
Calendar ca = Calendar.getInstance();
ca.setTime(dDate);
aResult[0] = Integer.toString(ca.get(1));
aResult[1] = Integer.toString(ca.get(2) + 1);
aResult[2] = Integer.toString(ca.get(5));
aResult[3] = Integer.toString(ca.get(11));
aResult[4] = Integer.toString(ca.get(12));
aResult[5] = Integer.toString(ca.get(13));
aResult[6] = Integer.toString(ca.get(1));
if(aResult[1].length() == 1)
aResult[1] = "0"
+ aResult[1];
if(aResult[2].length() == 1)
aResult[2] = "0"
+ aResult[2];
if(aResult[3].length() == 1)
aResult[3] = "0"
+ aResult[3];
if(aResult[4].length() == 1)
aResult[4] = "0"
+ aResult[4];
if(aResult[5].length() == 1)
aResult[5] = "0"
+ aResult[5];
return aResult;
}
catch(Exception ex)
{
return null;
}
}
}
一点问题都没有
你是用什么开发工具写的程序 ?
 
我是用JBuilder9,你用的小颖Java源代码反编译专家是1.4版的吗?如果不是能否发到我邮箱10End@126.com
 
我用weblogic8带的javac编译,反编译出来也有问题,和JB9共同点是jdk都是1.4以后的,你的JDK是什么版,会不会跟JDK有关系:
反编译结果如下:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi
// Source File Name: DateTime.java
import java.util.Calendar;
import java.util.Date;
public class DateTime
{
public DateTime()
{
}
private static String[] ParseDate(Date date)
{
String as[];
as = new String[7];
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
as[0] = calendar.toString(calendar.get(1));
as[1] = calendar.toString(calendar.get(2) + 1);
as[2] = calendar.toString(calendar.get(5));
as[3] = calendar.toString(calendar.get(11));
as[4] = calendar.toString(calendar.get(12));
as[5] = calendar.toString(calendar.get(13));
as[6] = calendar.toString(calendar.get(1));
if(as[1].length() == 1)
as[1] = "0"
+ as[1];
if(as[2].length() == 1)
as[2] = "0"
+ as[2];
if(as[3].length() == 1)
as[3] = "0"
+ as[3];
if(as[4].length() == 1)
as[4] = "0"
+ as[4];
if(as[5].length() == 1)
as[5] = "0"
+ as[5];
return as;
Exception exception;
exception;
return null;
}
}
 
我用JDK1.3的编译完反编译是正确,看来反编译器和JDK版本不一致,不知道有没地方弄和JDK1.4对应的反编译器?
 
可能用JAVA混淆器 混淆过了[:D]
 
也不排除JDK1.4以后编译自动增加混淆功能(我直接用JAVAC编译的,没加混淆)
 
你用的不是sun的jdk,所以在反编译的时候可能会有问题。
我用的是sun的jdk1.4,小颖Java源代码反编译专家是1.4版
小颖Java源代码反编译专家是1.4版反编译jdk1.5也没有问题,至少是在我这没有问题。
 
那请问哪位大虾可以提供支持JBuilder 9的反编译工具?谢谢!
 
你试一下JAD
 
后退
顶部