前言:在实质上的开销中差不离都会使用到有的框架来提携项指标费用工作,对于部分框架的代码大家总怀有1部分惊讶之心,想一探毕竟,有源码当然越来越好了,对于某些JACR-V包中的代码我们就供给运用反编译工具来看一下了,下边是自个儿常利用的一种安装JAVA反编写翻译工具的点子,操作比较不难,不过岁月长了也易于忘记,还是在此小记一笔吧!终究好记性不比烂笔头(插件市集中有许多好玩的,自身能够品尝玩玩看!)

最初的小说地址:

前言:在实质上的开发中差不离都会选取到有的框架来扶持项目标开支工作,对于壹些框架的代码大家总怀有局地惊奇之心,想1探毕竟,有源码当然更加好了,对于有些JA奥迪Q5包中的代码大家就要求运用反编写翻译工具来看一下了,上边是自个儿常使用的一种安装JAVA反编写翻译工具的秘籍,操作比较简单,然而岁月长了也易于忘记,依然在此小记一笔吧!毕竟好记性比不上烂笔头(插件市场中有成都百货上千幽默的,自身能够品味玩玩看!)

对于Action的选取方法运用如下:

一:Eclipse的版本音讯

前言:在其实的支付中差不多都会使用到有个别框架来扶助项目标支出工作,对于1些框架的代码大家总怀有一对惊奇之心,想1探毕竟,有源码当然更加好了,对于有个别JA本田UR-V包中的代码大家就须求选用反编写翻译工具来看一下了,上面是本身常利用的壹种安装JAVA反编写翻译工具的不二等秘书诀,操作相比较容易,可是岁月长了也便于忘记,依然在此小记一笔吧!究竟好记性不比烂笔头(插件市场中有成都百货上千有趣的,本身能够尝尝玩玩看!)

一:Eclipse的版本消息

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string first = "First";
            var action = new Action(() => { Console.WriteLine(first); });
            action();

            var action2 = new Action<string>((s) => { Console.WriteLine($"Action<T>:{s}"); });
            action2(first);

            var action3 = new Action<string, string>((s1, s2) => {
                Console.WriteLine($"Action<T1,T2>:{s1},{s2}");
            });
            action3(first, "second");
        }
    }
}

金沙注册送58 1

一:Eclipse的版本新闻

金沙注册送58 2

运用dotPeek通过反编写翻译,获得代码:

2:Help——Eclipse Marketplace

     金沙注册送58 3

2:Help——Eclipse Marketplace

namespace ConsoleApp1
{
  internal class Program
  {
    private static void Main(string[] args)
    {
      string first = "First";
      ((Action) (() => Console.WriteLine(first)))();
      ((Action<string>) (s => Console.WriteLine(string.Format("Action<T>:{0}", (object) s))))(first);
      ((Action<string, string>) ((s1, s2) => Console.WriteLine(string.Format("Action<T1,T2>:{0},{1}", (object) s1, (object) s2))))(first, "second");
    }
  }
}

金沙注册送58 4

2:Help——Eclipse Marketplace

金沙注册送58 5

 

eclipse安装JAVA反编写翻译插件。三-1:输入 Decompiler 搜索并设置此插件

      金沙注册送58 6

三-1:输入 Decompiler 搜索并安装此插件

下边写一种与反编写翻译出来的形似的不二等秘书籍

金沙注册送58 7

三-一:输入 Decompiler 搜索并设置此插件

金沙注册送58 8

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string first = "First";
            var action = new Action(() => { Console.WriteLine(first); });
            action();

            var action2 = new Action<string>((s) => { Console.WriteLine($"Action<T>:{s}"); });
            action2(first);

            var action3 = new Action<string, string>((s1, s2) =>
            {
                Console.WriteLine($"Action<T1,T2>:{s1},{s2}");
            });
            action3(first, "second");

            new Action(() => { Console.WriteLine(first); })();
            new Action<string>((s) => { Console.WriteLine($"Action<T>:{s}"); })(first);
            new Action<string, string>((s1, s2) =>
            {
                Console.WriteLine($"Action<T1,T2>:{s1},{s2}");
            })(first, "second");
        }
    }
}

三-二:输入 反编写翻译 搜索并设置此插件(有不少妙不可言的插件,不妨尝试玩一玩)

       金沙注册送58 9

3-贰:输入 反编写翻译 搜索并设置此插件(有广大幽默的插件,不要紧尝试玩壹玩)

看一下反编写翻译的结果:

金沙注册送58 10

叁-贰:输入 反编译 搜索并安装此插件(有过多幽默的插件,无妨尝试玩壹玩)

金沙注册送58 11

namespace ConsoleApp1
{
  internal class Program
  {
    private static void Main(string[] args)
    {
      string first = "First";
      ((Action) (() => Console.WriteLine(first)))();
      ((Action<string>) (s => Console.WriteLine(string.Format("Action<T>:{0}", (object) s))))(first);
      ((Action<string, string>) ((s1, s2) => Console.WriteLine(string.Format("Action<T1,T2>:{0},{1}", (object) s1, (object) s2))))(first, "second");
      ((Action) (() => Console.WriteLine(first)))();
      string str1 = first;
      ((Action<string>) (s => Console.WriteLine(string.Format("Action<T>:{0}", (object) s))))(str1);
      string str2 = first;
      string str3 = "second";
      ((Action<string, string>) ((s1, s2) => Console.WriteLine(string.Format("Action<T1,T2>:{0},{1}", (object) s1, (object) s2))))(str2, str3);
    }
  }
}

四:那里有二种差异的反编写翻译插件工具的选择,能够先都选上,然后尝试一下,看看那多少个更加好玩

        金沙注册送58 12

四:这里有二种差别的反编写翻译插件工具的精选,能够先都选上,然后尝试一下,看看那多少个越来越好玩

反编写翻译结果是帮大家定义了多少个变量。

金沙注册送58 13

四:那里有两种差别的反编写翻译插件工具的挑选,能够先都选上,然后尝试一下,看看那个更加好玩

金沙注册送58 14

 

伍:没得选,不收受,就不能够再三再四玩了

金沙注册送58 ,       金沙注册送58 15

伍:没得选,不收受,就不可能继续玩了

金沙注册送58 16

5:没得选,不接受,就无法继承玩了

金沙注册送58 17

陆:当然要继续了

       金沙注册送58 18

陆:当然要一连了

金沙注册送58 19

陆:当然要持续了

金沙注册送58 20

七:好啊!反编写翻译插件安装到位了,重启Eclipse之后就能玩了,那就Yes吧!

 金沙注册送58 21

7:好啊!反编写翻译插件安装到位了,重启Eclipse之后就能玩了,那就Yes吧!

金沙注册送58 22

柒:好啊!反编写翻译插件安装完结了,重启Eclipse之后就能玩了,那就Yes吧!

金沙注册送58 23

8:想看一下反编写翻译插件安装后的设置选项 Window——Preferences

     金沙注册送58 24

八:想看一下反编写翻译插件安装后的设置选项 Window——Preferences

金沙注册送58 25

八:想看一下反编写翻译插件安装后的安装选项 Window——Preferences

金沙注册送58 26

九:下图为Eclipse Class
Decompiler的首要选用项页面,能够挑选缺省的反编写翻译器工具,并实行反编写翻译器的主导设置。

      金沙注册送58 27

九:下图为Eclipse Class
Decompiler的首要选用项页面,能够挑选缺省的反编写翻译器工具,并开始展览反编写翻译器的着力设置。

缺省的反编写翻译工具为JD-Core,JD-Core更为先进壹些,帮助泛型、Enum、评释等JDK一.5过后才有的新语法。

玖:下图为Eclipse Class
Decompiler的首要选取项页面,能够选用缺省的反编写翻译器工具,并实行反编写翻译器的为主设置。

缺省的反编译工具为JD-Core,JD-Core更为先进1些,帮忙泛型、Enum、注脚等JDK1.五事后才有的新语法。

首要采取项配置选项的意思如下所示:

缺省的反编写翻译工具为JD-Core,JD-Core更为先进1些,帮忙泛型、Enum、申明等JDK壹.五事后才有的新语法。

首要选拔项配置选项的意义如下所示:

     
玖-1.重用缓存代码:只会反编写翻译贰次,现在每一趟打开该类文件,都显示的是缓存的反编写翻译代码。
     
玖-二.忽略已存在的源代码:若未选中,则查看Class文件是不是已绑定了Java源代码,假诺已绑定,则突显Java源代码,假使未绑定,则反编写翻译Class文件。若选中此项,则忽略已绑定的Java源代码,彰显反编写翻译结果。
     
九-三.显得反编写翻译器报告:显示反编写翻译器反编写翻译后生成的多寡报告及尤其音讯。

首要选拔项配置选项的意义如下所示:

     
9-1.重用缓存代码:只会反编译一次,未来每回打开该类文件,都来得的是缓存的反编写翻译代码。
     
九-二.忽略已存在的源代码:若未选中,则查看Class文件是或不是已绑定了Java源代码,假如已绑定,则展现Java源代码,假如未绑定,则反编写翻译Class文件。若选中此项,则忽略已绑定的Java源代码,展现反编写翻译结果。
     
9-3.来得反编写翻译器报告:展现反编写翻译器反编写翻译后生成的多寡报告及13分音信。

     
玖-四.施用Eclipse代码格式化学工业具:使用Eclipse格式化学工业具对反编写翻译结果再一次格式化排版,反编写翻译整个Jar包时,此操作会消耗一些年华。
     
玖-5.应用Eclipse成员排序:使用Eclipse成员排序对反编写翻译结果再度格式化排版,反编写翻译整个Jar包时,此操作会消耗多量日子。

     
玖-一.重用缓存代码:只会反编写翻译1回,未来每一回打开该类文件,都显示的是缓存的反编写翻译代码。
     
九-二.忽略已存在的源代码:若未选中,则查看Class文件是或不是已绑定了Java源代码,借使已绑定,则展现Java源代码,假使未绑定,则反编写翻译Class文件。若选中此项,则忽略已绑定的Java源代码,展现反编写翻译结果。
     
9-三.来得反编写翻译器报告:显示反编写翻译器反编写翻译后生成的数量报告及特别音讯。

     
玖-4.选取Eclipse代码格式化学工业具:使用Eclipse格式化学工业具对反编写翻译结果再次格式化排版,反编写翻译整个Jar包时,此操作会消耗一些时间。
     
玖-5.施用Eclipse成员排序:使用Eclipse成员排序对反编写翻译结果再次格式化排版,反编写翻译整个Jar包时,此操作会消耗大量年华。

     
九-6.以注释格局出口原始行号音讯:假设Class文件包蕴原始行号消息,则会将行号音信以注释的办法打印到反编译结果中。
     
9-7.基于行号对齐源代码以便于调节和测试:若选中该项,插件会利用AST工具分析反编写翻译结果,并依照行号音信调整代码顺序,以便于Debug进度中的单步跟踪调节和测试。

     
玖-四.运用Eclipse代码格式化学工业具:使用Eclipse格式化学工业具对反编写翻译结果再行格式化排版,反编写翻译整个Jar包时,此操作会消耗一些岁月。
     
九-伍.应用Eclipse成员排序:使用Eclipse成员排序对反编写翻译结果再度格式化排版,反编写翻译整个Jar包时,此操作会消耗大批量光阴。

     
玖-六.以注释方式出口原始行号消息:借使Class文件包罗原始行号消息,则会将行号音讯以注释的主意打印到反编写翻译结果中。
     
九-7.依据行号对齐源代码以便于调节和测试:若选中该项,插件会利用AST工具分析反编译结果,并依据行号音信调整代码顺序,以便于Debug进度中的单步跟踪调试。

     
玖-八.设置类反编写翻译查看器作为缺省的类公事编辑器:暗许为选中,将忽略Eclipse自带的Class
Viewer,每回Eclipse运营后,暗中同意使用本插件提供的类查看器打开Class文件。

     
九-陆.以注释格局出口原始行号音讯:倘诺Class文件包罗原始行号音信,则会将行号信息以注释的主意打字与印刷到反编写翻译结果中。
     
玖-7.依照行号对齐源代码以便于调节和测试:若选中该项,插件会动用AST工具分析反编译结果,并基于行号信息调整代码顺序,以便于Debug进度中的单步跟踪调节和测试。

     
玖-8.设置类反编写翻译查看器作为缺省的类公事编辑器:私下认可为选中,将忽略Eclipse自带的Class
Viewer,每便Eclipse启动后,私下认可使用本插件提供的类查看器打开Class文件。

金沙注册送58 28

     
玖-八.设置类反编写翻译查看器作为缺省的类公事编辑器:默许为选中,将忽略Eclipse自带的Class
Viewer,每一趟Eclipse运转后,暗许使用本插件提供的类查看器打开Class文件。

金沙注册送58 29

拾:查看所引述的 类 || 接口 || 方法 的反编写翻译代码的方法如下

      金沙注册送58 30

拾:查看所引述的 类 || 接口 || 方法 的反编写翻译代码的主意如下

       方法1:右键点中 类 || 接口 || 方法 名,采用Open
Declaration,即可进入源码。

10:查看所引用的 类 || 接口 || 方法 的反编写翻译代码的办法如下

       方法一:右键点中 类 || 接口 || 方法 名,选取Open
Declaration,即可进入源码。

      
方法2:右键点中 类 || 接口 || 方法 名,直接按F三键,即可进入源码。

       方法一:右键点中 类 || 接口 || 方法 名,选取Open
Declaration,即可进入源码。

      
方法二:右键点中 类 || 接口 || 方法 名,直接按F3键,即可进入源码。

      
方法三:常按住Ctrl键,然后点击 类 || 接口 || 方法 名,即可进入源码。(小编比较欣赏那种操作方式)

      
方法贰:右键点中 类 || 接口 || 方法 名,间接按F三键,即可进入源码。

      
方法三:常按住Ctrl键,然后点击 类 || 接口 || 方法 名,即可进入源码。(小编相比较欣赏那种操作格局)

1一:插件提供了系统菜单,工具栏,当打开了插件提供的类反编写翻译查看器后,会激活菜单和工具栏选项,能够方便的进展首选项配置,切换反编写翻译工具重新反编译,以及导出反编写翻译结果。

      
方法三:常按住Ctrl键,然后点击 类 || 接口 || 方法 名,即可进入源码。(笔者相比较欣赏那种操作方法)

11:插件提供了系统菜单,工具栏,当打开了插件提供的类反编写翻译查看器后,会激活菜单和工具栏选项,能够便宜的开始展览首要选择项配置,切换反编写翻译工具重新反编写翻译,以及导出反编写翻译结果。

 

1一:插件提供了系统菜单,工具栏,当打开了插件提供的类反编写翻译查看器后,会激活菜单和工具栏选项,能够方便的进展首要选择项配置,切换反编写翻译工具重新反编写翻译,以及导出反编译结果。

 

金沙注册送58 31

        金沙注册送58 32

金沙注册送58 33

 

12:参考

 

12:参考

12:参考

相关文章

网站地图xml地图