项目是用的JFinal开发的,在项目运行之后,在classes目录里,多了一些带有$字符的文件,这是因为啥?其他的项目好像都没有
在这样的情况下,在本地跑和tomcat跑是没问题的,但是在weblogic里启动服务器的时候就报错了,提示缺少xxxxx$2类,事实上这个类在目录下是没有的
不太明白编译之后,为何会生成带有$的class
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
现在生成的情况是:
xxxx.class xxxx$1.class 有的有xxxx$2.class
把你自己的那个类贴出来看看 publicclassLoginLogService{privatestaticfinalStringCACHE_NAME="LoginlogService";privatestaticLoginLogServiceservice;privateLoginLogService(){}publicstaticsynchronizedLoginLogServiceme(){if(service==null){service=newLoginLogService();}returnservice;}}其他的就只有些sql查询而已
回复 @Singer:有,其他的就是普通的sql操作你这个里面java文件里面就只有这些代码没有其他的了?如果没有的话是绝对不会产生$的class文件的。 @Singer刚做了个试验,增加了个新类按上面写,不会有生成,但是增加了其他的增删改查的操作就生成了?这是为何 publicclassLoginLogService{privatestaticfinalStringCACHE_NAME="LoginlogService";privatestaticLoginLogServiceservice;privateLoginLogService(){}publicstaticsynchronizedLoginLogServiceme(){if(service==null){service=newLoginLogService();}returnservice;}classA{}}这样的有内部类的情况的时候就会有$出现如果用$1$2用数字代表的话应该是匿名内部类
1.没有声名作用域,参照jfinal代码中com.jfinal.core.Config,编译出来为com.jfinal.core.Config$1
2.有内部类或者匿名内部类。后面的1,2,3指的是匿名内部类的个数,对应着编译出几个class文件。
第一种情况可以排除,我刚试验过了第二种情况,什么才叫内部类,像他们说的CLASSA这个我已经删除了,但是一样的有