您的位置:首页 > 其它

北电SNMP V3的基本配置

2010-11-21 20:11 134 查看
     近期项目中需要反编译修改多年前的class文件,经过反编译并修改后,用Eclipse编译和java命令行得到的class文件不同,对新class文件反编译后如下:

 

 

    

    用Eclipse编译的class文件反编译:

package com.langchao.kpiengine.builder.baskpi;
import com.langchao.kpiengine.model.common.BasDimensionType;
import com.langchao.kpiengine.model.common.Kpi;
import com.langchao.kpiengine.model.common.KpiRelation;
import com.langchao.kpiengine.model.common.UnitKpi;
import com.langchao.kpiengine.search.BasKpiDefine;
import com.langchao.kpiengine.util.KpiConfigHelper;
import com.langchao.kpiengine.xml.digester.DigesterUtil;
import com.langchao.kpiengine.xml.digester.KpiDigester;
import com.langchao.kpiengine.xml.digester.KpiDigesterFactory;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class BasKpiDefineDaoXmlImpl
implements BasKpiDefineDao
{
private static Log log = LogFactory.getLog("KpiQueryService");
public static final String RULE_CONFIG;
public static final String DEFINE_CONFIG;
private BasKpiDefine basKpiDefine;
static Class class$0;

// ERROR //
static
{
// Byte code:
//   0: ldc 20
//   2: invokestatic 22	org/apache/commons/logging/LogFactory:getLog	(Ljava/lang/String;)Lorg/apache/commons/logging/Log;
//   5: putstatic 28	com/langchao/kpiengine/builder/baskpi/BasKpiDefineDaoXmlImpl:log	Lorg/apache/commons/logging/Log;
//   8: new 30	java/lang/StringBuffer
//   11: dup
//   12: getstatic 32	com/langchao/kpiengine/builder/baskpi/BasKpiDefineDaoXmlImpl:class$0	Ljava/lang/Class;
//   15: dup
//   16: ifnonnull +28 -> 44
//   19: pop
//   20: ldc 34
//   22: invokestatic 36	java/lang/Class:forName	(Ljava/lang/String;)Ljava/lang/Class;
//   25: dup
//   26: putstatic 32	com/langchao/kpiengine/builder/baskpi/BasKpiDefineDaoXmlImpl:class$0	Ljava/lang/Class;
//   29: goto +15 -> 44
//   32: new 42	java/lang/NoClassDefFoundError
//   35: dup_x1
//   36: swap
//   37: invokevirtual 44	java/lang/Throwable:getMessage	()Ljava/lang/String;
//   40: invokespecial 50	java/lang/NoClassDefFoundError:<init>	(Ljava/lang/String;)V
//   43: athrow
//   44: invokevirtual 54	java/lang/Class:getPackage	()Ljava/lang/Package;
//   47: invokevirtual 58	java/lang/Package:getName	()Ljava/lang/String;
//   50: invokestatic 63	java/lang/String:valueOf	(Ljava/lang/Object;)Ljava/lang/String;
//   53: invokespecial 69	java/lang/StringBuffer:<init>	(Ljava/lang/String;)V
//   56: ldc 70
//   58: invokevirtual 72	java/lang/StringBuffer:append	(Ljava/lang/String;)Ljava/lang/StringBuffer;
//   61: invokevirtual 76	java/lang/StringBuffer:toString	()Ljava/lang/String;
//   64: putstatic 79	com/langchao/kpiengine/builder/baskpi/BasKpiDefineDaoXmlImpl:RULE_CONFIG	Ljava/lang/String;
//   67: new 30	java/lang/StringBuffer
//   70: dup
//   71: getstatic 32	com/langchao/kpiengine/builder/baskpi/BasKpiDefineDaoXmlImpl:class$0	Ljava/lang/Class;
//   74: dup
//   75: ifnonnull +28 -> 103
//   78: pop
//   79: ldc 34
//   81: invokestatic 36	java/lang/Class:forName	(Ljava/lang/String;)Ljava/lang/Class;
//   84: dup
//   85: putstatic 32	com/langchao/kpiengine/builder/baskpi/BasKpiDefineDaoXmlImpl:class$0	Ljava/lang/Class;
//   88: goto +15 -> 103
//   91: new 42	java/lang/NoClassDefFoundError
//   94: dup_x1
//   95: swap
//   96: invokevirtual 44	java/lang/Throwable:getMessage	()Ljava/lang/String;
//   99: invokespecial 50	java/lang/NoClassDefFoundError:<init>	(Ljava/lang/String;)V
//   102: athrow
//   103: invokevirtual 81	java/lang/Class:getName	()Ljava/lang/String;
//   106: invokestatic 63	java/lang/String:valueOf	(Ljava/lang/Object;)Ljava/lang/String;
//   109: invokespecial 69	java/lang/StringBuffer:<init>	(Ljava/lang/String;)V
//   112: ldc 82
//   114: invokevirtual 72	java/lang/StringBuffer:append	(Ljava/lang/String;)Ljava/lang/StringBuffer;
//   117: invokevirtual 76	java/lang/StringBuffer:toString	()Ljava/lang/String;
//   120: putstatic 84	com/langchao/kpiengine/builder/baskpi/BasKpiDefineDaoXmlImpl:DEFINE_CONFIG	Ljava/lang/String;
//   123: return
//
// Exception table:
//   from	to	target	type
//   20	25	32	java/lang/ClassNotFoundException
//   79	84	91	java/lang/ClassNotFoundException
}

 [/code]
 
 
用java命令行执行(如图):
 

C:\j2sdk1.4.2_16\bin>javac
–classpath .;kpimodelbuild.jar;commons-logging.jar;kpimodel.jar;commons-digester.jar;sax.jar;zhibiaoutil.jar
 BasKpiDefineDaoXmlImpl.java
 
对用命令行新生成的class反编译:
 

package com.langchao.kpiengine.builder.baskpi;

import com.langchao.kpiengine.model.common.BasDimensionType;
import com.langchao.kpiengine.model.common.Kpi;
import com.langchao.kpiengine.model.common.KpiRelation;
import com.langchao.kpiengine.model.common.UnitKpi;
import com.langchao.kpiengine.search.BasKpiDefine;
import com.langchao.kpiengine.util.KpiConfigHelper;
import com.langchao.kpiengine.xml.digester.DigesterUtil;
import com.langchao.kpiengine.xml.digester.KpiDigester;
import com.langchao.kpiengine.xml.digester.KpiDigesterFactory;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class BasKpiDefineDaoXmlImpl
implements BasKpiDefineDao
{
private static Log log = LogFactory.getLog("KpiQueryService");
public static final String RULE_CONFIG = BasKpiDefineDaoXmlImpl.class.getPackage().getName() + ".ruleconfig";
public static final String DEFINE_CONFIG = BasKpiDefineDaoXmlImpl.class.getName() + ".defineconfig";
private BasKpiDefine basKpiDefine;

 
 

经比对,Eclipse生成的对应的public static final String 静态常量的值在反编译后都没有了,而使用java命令行的反编译后正常。
问题找到了,但是原因未知。
 
 

 

 
 

 

 

 
 

 

 

 

 
 
 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: