最近在弄beanshell,需要修改其源代码,然后才能使用,我修改后重新用ant打包时总是不成功,请问,哪位高手修改过java开源工具(如beanshell,struts,hibernate等),如何进行重新打包,有何要求?谢谢

解决方案 »

  1.   

    最简单的方法,把开源的包解压出来,把你修改后的class覆盖到解压的文件夹中,重新打包文件夹
      

  2.   

    把ant构建的出错日志发上来。
      

  3.   

        [javac] D:\网络参考\beanshell\beanshell2.04\beanshell\BeanShell\engine\src\T
    estBshScriptEngine.java:46: 找不到符号
        [javac] 符号: 方法 invoke(java.lang.String)
        [javac] 位置: 接口 javax.script.Invocable
        [javac]             int foo = (Integer)invocable.invoke( "foo" );
        [javac]                                         ^
        [javac] D:\网络参考\beanshell\beanshell2.04\beanshell\BeanShell\engine\src\T
    estBshScriptEngine.java:61: 找不到符号
        [javac] 符号: 方法 invoke(java.lang.String)
        [javac] 位置: 接口 javax.script.Invocable
        [javac]             Object scriptedObject = invocable.invoke("myObj");
        [javac]                                              ^
        [javac] D:\网络参考\beanshell\beanshell2.04\beanshell\BeanShell\engine\src\b
    sh\engine\BshScriptEngine.java:13: bsh.engine.BshScriptEngine 不是抽象的,并且未
    覆盖 javax.script.Invocable 中的抽象方法 invokeFunction(java.lang.String,java.la
    ng.Object...)
        [javac] public class BshScriptEngine extends AbstractScriptEngine
        [javac]        ^
        [javac] 注意:某些输入文件使用了未经检查或不安全的操作。
        [javac] 注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。
        [javac] 3 错误
        [javac] 7 警告我知道它写的是找不到,我就是想知道在重新编译的时候,除了需要ant的build.xml文件外还需要做什么事,是不要配jdk什么的
      

  4.   

    我这样试了,会出现java.lang.UnsupportedClassVersionError: Bad version number in .class file这种错误
      

  5.   


    你用的JDK和他原始编译的JDK版本不一致。
      

  6.   

    你修改完代码之后有错啊,ant的compile阶段就没编译通过,就算打包成功也可能有问题,你更改了源码是加了类了吧,但你增加的类不在ant构建范围之内。你要修改build.xml文件。
      

  7.   

    编译出错的根本原因是:beanshell 2.04b不支持jsr223。https://scripting.dev.java.net/上说2.05b支持。beanshell网站上根本没有2.05b。没有支持jsr223,当然不能通过javax.script调用!