Google App Engine DataNucleus 3.1.1意外的异常错误

时间:2014-11-06 00:16:38

标签: java google-app-engine datanucleus

试图在eclipse上找到摆脱这个错误的方法。

DataNucleus Enhancer (version 3.1.1) : Enhancement of classes
Encountered a problem: Unexpected exception

这是日志

java.lang.RuntimeException: Unexpected exception
    at com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java:76)
    at com.google.appengine.tools.enhancer.Enhance.<init>(Enhance.java:71)
    at com.google.appengine.tools.enhancer.Enhance.main(Enhance.java:51)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java:74)
    ... 2 more
Caused by: java.lang.IllegalArgumentException
    at org.objectweb.asm.ClassReader.<init>(Unknown Source)
    at org.objectweb.asm.ClassReader.<init>(Unknown Source)
    at org.objectweb.asm.ClassReader.<init>(Unknown Source)
    at org.datanucleus.enhancer.asm.ASMClassEnhancer.getClassNameForFileName(ASMClassEnhancer.java:272)
    at org.datanucleus.enhancer.DataNucleusEnhancer.getFileMetadataForInput(DataNucleusEnhancer.java:727)
    at org.datanucleus.enhancer.DataNucleusEnhancer.enhance(DataNucleusEnhancer.java:525)
    at org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java:1258)
    ... 7 more

我有两个版本的java,一个是1.8.0_25,另一个是1.7.0_46

这是我的路径

 C:\Program Files (x86)\Java\jre7\bin;;C:\oraclexe\app\oracle\product\11.2.0\server\bin;;C:\ProgramData\Oracle\Java\javapath;

作为默认我在eclipse上使用jre7,不知道还有什么值得一提的。我发现在这里或其他网站上没有明确解释的解决方案,而不是尝试更改java版本,尝试在我的计算机上的所有Java实例,卸载并再次安装。我猜它可能是关于java和datanucleus compability问题,但目前使用java7和我使用的插件是从eclipse自动下载所以没有线索。如果您需要任何澄清,请问我。

jar files

3 个答案:

答案 0 :(得分:13)

如果您使用的是Java 8,则需要在项目属性中将编译器合规性级别设置为1.7。您还需要更改java facet版本

Compiler Compliance Java Facet Version

答案 1 :(得分:10)

请注意(GoogleAppEngine Enhancer Error Code 1:

  

App Engine不适用于Java 1.8。尝试使用Java 1.7再次执行此操作

在项目设置中设置Java 1.7解决了我的问题。

答案 2 :(得分:8)

就像我猜到的那样,这完全取决于兼容性问题。如果您收到此错误,请确保您的日食和您的计算机使用的所有内容与所有版本的java相同。我的意思是你需要检查; 在eclipse中,从顶部菜单中选择Project-&gt; Properties,然后确保eclipse使用的所有java版本都是相同的。

build path

LIBRARIES

compiler

当然你的环境变量应该指向eclipse使用的相同版本。

environment

希望这会有所帮助。发表评论,如果你发现它不清楚。在开始编码之前得到错误很糟糕:p