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

Kar*_*ana 11 java google-app-engine datanucleus

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

DataNucleus Enhancer (version 3.1.1) : Enhancement of classes
Encountered a problem: Unexpected exception
Run Code Online (Sandbox Code Playgroud)

这是日志

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
Run Code Online (Sandbox Code Playgroud)

我有两个版本的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;
Run Code Online (Sandbox Code Playgroud)

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

jar文件

Pan*_*ani 13

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

编译器合规性 Java Facet版本


mat*_*lel 10

需要注意的是(GoogleAppEngine增强错误代码1: )

App Engine不适用于Java 1.8.使用Java 1.7再试一次

在Project设置中设置Java 1.7解决了我的问题.


Kar*_*ana 8

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

建立路径

图书馆

编译器

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

环境

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