zoukankan      html  css  js  c++  java
  • Groovy脚本和Groovy类反编译文件

    Groovy类

    package preload_groovy
    
    class GroovyKlass {
        static void main(String[] args) {
            println "Hello"
        }
    }
    
    package preload_groovy;
    
    import org.codehaus.groovy.reflection.*;
    import groovy.lang.*;
    import java.lang.ref.*;
    import org.codehaus.groovy.runtime.*;
    import org.codehaus.groovy.runtime.callsite.*;
    
    public class GroovyKlass implements GroovyObject
    {
        private static /* synthetic */ ClassInfo $staticClassInfo;
        private transient /* synthetic */ MetaClass metaClass;
        private static /* synthetic */ SoftReference $callSiteArray;
        
        public GroovyKlass() {
            $getCallSiteArray();
            this.metaClass = this.$getStaticMetaClass();
        }
        
        public static void main(final String... args) {
            $getCallSiteArray()[0].callStatic((Class)GroovyKlass.class, (Object)"Hello");
        }
        
        protected /* synthetic */ MetaClass $getStaticMetaClass() {
            if (this.getClass() != GroovyKlass.class) {
                return ScriptBytecodeAdapter.initMetaClass((Object)this);
            }
            ClassInfo $staticClassInfo = GroovyKlass.$staticClassInfo;
            if ($staticClassInfo == null) {
                $staticClassInfo = (GroovyKlass.$staticClassInfo = ClassInfo.getClassInfo((Class)this.getClass()));
            }
            return $staticClassInfo.getMetaClass();
        }
        
        private static /* synthetic */ CallSiteArray $createCallSiteArray() {
            final String[] array = { null };
            $createCallSiteArray_1(array);
            return new CallSiteArray((Class)GroovyKlass.class, array);
        }
        
        private static /* synthetic */ CallSite[] $getCallSiteArray() {
            CallSiteArray $createCallSiteArray;
            if (GroovyKlass.$callSiteArray == null || ($createCallSiteArray = GroovyKlass.$callSiteArray.get()) == null) {
                $createCallSiteArray = $createCallSiteArray();
                GroovyKlass.$callSiteArray = new SoftReference($createCallSiteArray);
            }
            return $createCallSiteArray.array;
        }
    }
    
    

    Groovy脚本

    package preload_groovy
    
    println 'Hello'
    
    
    package preload_groovy;
    
    import org.codehaus.groovy.reflection.*;
    import java.lang.ref.*;
    import groovy.lang.*;
    import org.codehaus.groovy.runtime.*;
    import org.codehaus.groovy.runtime.callsite.*;
    
    public class GroovyScript extends Script
    {
        private static /* synthetic */ SoftReference $callSiteArray;
        
        public GroovyScript() {
            $getCallSiteArray();
        }
        
        public GroovyScript(final Binding context) {
            $getCallSiteArray();
            super(context);
        }
        
        public static void main(final String... args) {
            $getCallSiteArray()[0].call((Object)InvokerHelper.class, (Object)GroovyScript.class, (Object)args);
        }
        
        public Object run() {
            return $getCallSiteArray()[1].callCurrent((GroovyObject)this, (Object)"Hello");
        }
        
        private static /* synthetic */ CallSiteArray $createCallSiteArray() {
            final String[] array = new String[2];
            $createCallSiteArray_1(array);
            return new CallSiteArray((Class)GroovyScript.class, array);
        }
        
        private static /* synthetic */ CallSite[] $getCallSiteArray() {
            CallSiteArray $createCallSiteArray;
            if (GroovyScript.$callSiteArray == null || ($createCallSiteArray = GroovyScript.$callSiteArray.get()) == null) {
                $createCallSiteArray = $createCallSiteArray();
                GroovyScript.$callSiteArray = new SoftReference($createCallSiteArray);
            }
            return $createCallSiteArray.array;
        }
    }
    
    
  • 相关阅读:
    Springboot在IDEA中执行,开启热部署
    java 二分法学习
    python爬虫初级--获取指定页面上的菜单名称以及链接,然后导出
    使用POI读取xlsx文件,包含对excel中自定义时间格式的处理
    Linux CentOS6.8 项目部署脚本实现
    Springboot启动源码详解
    FreeMarker基础语法,宏,引用 等
    在eclipse中启动java程序的时候,每次都会在一个未设置断点的源码里面,卡断点
    Vue学习--
    阿里的maven镜像仓库,eclipse中使用maven下载jar包的时候提升速度
  • 原文地址:https://www.cnblogs.com/jsersudo/p/14214761.html
Copyright © 2011-2022 走看看