我的JBoss AS 4.2.3 GA有一个非常烦人的问题.
直到最近一切都运行良好,但现在热部署功能现在更长.并且 - 一如既往 - 我不知道我做了什么导致这种行为.
我的项目是用Maven构建的.我已清理每个目标目录,安装项目,然后将它们部署到服务器.因此,Eclipse中的源代码和服务器上的已部署项目应该完全相同.在一个方法里面我添加了一个简单的System.out.println("test");声明--BANG! - 我收到以下错误:
热代码替换失败 - 未实施方案更改http://imagefruity.com/images/92236289746667737609.png
你知道摆脱困境的方法吗?
给定相同的主要版本,比如Java 7,做不同的Java编译器(例如,Oracle的热点,JRockit或IBM的J9等......)将给定的java源代码文件编译成相同的bytcode?
扫描Java 7语言规范似乎正在讨论的是语言的语义,而不是将代码转换为字节码.
这个问题与不同的major.minor版本不同,给定供应商生成相同的字节码.这个问题已在这里得到解答- 可能是.
从以下答案到Java类文件的创建是否确定?和这个问题的答案是指评论此沿侧两个答案上述问题MAJOR.MINOR 1和2,我收集了答案,我的问题是YES.
上述摘录如下:
JLS留下了许多实现细节,从一个实现到另一个实现.
和
但是,JLS没有指定从源代码到生成的字节代码的1:1映射,因此您不应该依赖于生成完全相同的字节代码.
然而,这里的评论意味着不同:
它是编译器,即javac,使用BLAH BLAH BLAH创建代码.这与HotSpot无关.
这意味着给定代码X所有javac实现(相同版本/不同供应商)必须生成相同的Y字节码.
我不明白这是怎么回事,但我无法证实它不是(或者我认为,见上文)是正确的.
可以给出明确的答案吗?