Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.VerifyError:堆栈映射帧不一致_Java_Eclipse_Google App Engine - Fatal编程技术网

java.lang.VerifyError:堆栈映射帧不一致

java.lang.VerifyError:堆栈映射帧不一致,java,eclipse,google-app-engine,Java,Eclipse,Google App Engine,我遇到了一个错误,我完全不知道如何去修复它。环顾stackoverflow,该错误似乎与损坏的文件或在不兼容的Java版本中编译的类有关。这是我一直在研究的问题之一: 警告:/clearnlp的错误 java.lang.VerifyError:分支目标60处的堆栈映射帧不一致 例外情况详情: 地点: createStringHashMap(Ljava/io/InputStream;Ledu/emory/clir/clearnlp/util/CharTokenizer;Z)Ljava/util/M

我遇到了一个错误,我完全不知道如何去修复它。环顾stackoverflow,该错误似乎与损坏的文件或在不兼容的Java版本中编译的类有关。这是我一直在研究的问题之一:

警告:/clearnlp的错误
java.lang.VerifyError:分支目标60处的堆栈映射帧不一致
例外情况详情:
地点:
createStringHashMap(Ljava/io/InputStream;Ledu/emory/clir/clearnlp/util/CharTokenizer;Z)Ljava/util/Map@60:aload_1
原因:
类型top(当前帧,局部变量[5])不可分配给“java/lang/String”(堆栈映射,局部变量[5])
当前帧:
密件抄送:@39
标志:{}
局部变量:{'java/io/InputStream','edu/emory/clir/clearnlp/util/CharTokenizer',integer','java/io/BufferedReader','java/util/Map',top',java/lang/String'}
堆栈:{integer}
堆栈映射帧:
密件抄送:@60
标志:{}
局部变量:{'java/io/InputStream','edu/emory/clir/clearnlp/util/CharTokenizer',integer','java/io/BufferedReader','java/util/Map','java/lang/String'}
堆栈:{}
字节码:
0x0000000:bb00 5159 bb00 6f59 2ab7 0074 b700 774e
0x0000010:bb00 8a59 0312 8c12 0b12 0db8 0013 b700
0x0000020:8d3a 04a7 0045 1c99 0015 1905 b600 323a
0x0000030:0519 05b6 0036 9900 06a7 002f 2b19 0503
0x0000040:1295 120b 120d b800 13b6 0099 3a06 1904
0x0000050:1906 0332 1906 0432 0312 9b12 0b12 0db8
0x0000060:0013 b900 9f03 0057 2db6 005c 593a 05c7
0x0000070:ffb7 a700 0a3a 0719 07b6 0061 1904 b0
异常处理程序表:
bci[35114]=>处理程序:117
堆栈映射表:
全帧(@38,{Object[#143],Object[#145],Integer,Object[#81],Object[#147],Top,Object[#40]},{})
全帧(@60,{Object[#143],Object[#145],Integer,Object[#81],Object[#147],Object[#40]},{})
切纸架(@104,1)
相同的_局部变量_1_堆栈_项_帧(@117,对象[#71])
同一帧(@124)
位于java.lang.Class.forName0(本机方法)
位于java.lang.Class.forName(Class.java:264)
位于com.google.appengine.tools.development.agent.runtime.RuntimeHelper.checkRestricted(RuntimeHelper.java:70)
位于com.google.appengine.tools.development.agent.runtime.runtime.checkRestricted(runtime.java:65)
在edu.emory.clir.clearnlp.coreference.sieve.SpeakerIdentification.(SpeakerIdentification.java:24)
在edu.emory.clir.clearnlp.coreference.config.SieveSystemCongiuration.loadDefaultSieves(SieveSystemCongiuration.java:63)
位于edu.drexel.gameailab.ClearNLPServlet.doGet(ClearNLPServlet.java:66)
位于edu.drexel.gameailab.ClearNLPServlet.doPost(ClearNLPServlet.java:44)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
位于org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
为了消除这种错误,我已经清理了项目好几次,删除了我找到的每个.class文件。将所有依赖项(JAR)更新为最新版本,对于更模糊的JAR,我找不到新版本,因为我跟踪了源代码,并将其与源代码一起转储,以确保JVM再次编译它

关于设置,这是一个使用servlet(Jetty)和googleappengine的clearnlp解析器项目的web界面。我知道GAE有一些限制,我已经重写了文件访问部分,这会很麻烦。我已经用斯坦福大学的corenlp进行了同样的过程,并且在重写后没有任何问题

位于edu.emory.clir.clearnlp.coreference.sieve.SpeakerIdentification.(SpeakerIdentification.java:24)的
正在初始化一些集合:
私有最终集firstPersonSingular代词=DSUtils.toHashSet(“i”、“me”、“my”、“mine”)下面是DSUtils.java中的一些源代码:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.PriorityQueue;
import java.util.Random;
import java.util.Set;
import java.util.regex.Pattern;

import edu.emory.clir.clearnlp.collection.list.FloatArrayList;
import edu.emory.clir.clearnlp.collection.pair.DoubleIntPair;
import edu.emory.clir.clearnlp.collection.pair.Pair;

public class DSUtils
{
[...]

    @SuppressWarnings("unchecked")
    static public <T>Set<T> toHashSet(T... items)
    {
        Set<T> set = new HashSet<T>(items.length);
        for (T item : items) set.add(item);
        return set;
    }
导入java.io.BufferedReader;
导入java.io.IOException;
导入java.io.InputStream;
导入java.io.InputStreamReader;
导入java.lang.reflect.Field;
导入java.util.ArrayList;
导入java.util.array;
导入java.util.Collection;
导入java.util.Collections;
导入java.util.HashMap;
导入java.util.HashSet;
导入java.util.List;
导入java.util.Map;
导入java.util.PriorityQueue;
导入java.util.Random;
导入java.util.Set;
导入java.util.regex.Pattern;
导入edu.emory.clir.clearnlp.collection.list.FloatArrayList;
导入edu.emory.clir.clearnlp.collection.pair.DoubleIntPair;
导入edu.emory.clir.clearnlp.collection.pair.pair;
公共类数据集
{
[...]
@抑制警告(“未选中”)
静态公共集合到hashset(T…项)
{
Set Set=新的HashSet(items.length);
对于(T项:项)集合。添加(项);
返回集;
}
有人对我下一步应该看什么有任何指示吗?GAE是否正在破坏类文件?我如何修复它?我没有源代码
com.google.appengine.tools.development.agent.runtime.RuntimeHelper.checkRestricted(RuntimeHelper.java:70)
或者
com.google.appengine.tools.development.agent.runtime.runtime.checkRestricted(runtime.java:65)
,这些都属于GAE SDK,我目前的版本是:1.9.30。
不确定是否相关,但我在OSX 10.11.2上使用苹果的jdk1.8.0_60。

问题在于为createStringHashmap方法生成的代码中,如果您使用eclipse编译代码,这可能是eclipse编译器中的一个错误,因为它生成了错误的字节代码。请查看是否可以识别代码的哪一部分是cau唱出这个问题并向eclipse提交一个bug。我还建议您尝试一个新版本的eclipse,您还没有使用过它。

对于1.8,请执行以下操作:

  • Windows->首选项->已安装的JRE
  • 选择jdk/jre并选择编辑
  • 在默认VM参数中,给出“-noverify”。对于1.7,给出“-XX:- 使用拆分验证器“
  • 那么,阿帕
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.lang.reflect.Field;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collection;
    import java.util.Collections;
    import java.util.HashMap;
    import java.util.HashSet;
    import java.util.List;
    import java.util.Map;
    import java.util.PriorityQueue;
    import java.util.Random;
    import java.util.Set;
    import java.util.regex.Pattern;
    
    import edu.emory.clir.clearnlp.collection.list.FloatArrayList;
    import edu.emory.clir.clearnlp.collection.pair.DoubleIntPair;
    import edu.emory.clir.clearnlp.collection.pair.Pair;
    
    public class DSUtils
    {
    [...]
    
        @SuppressWarnings("unchecked")
        static public <T>Set<T> toHashSet(T... items)
        {
            Set<T> set = new HashSet<T>(items.length);
            for (T item : items) set.add(item);
            return set;
        }