首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有仿制药的OpenJML?

有仿制药的OpenJML?
EN

Stack Overflow用户
提问于 2014-05-06 08:47:40
回答 2查看 391关注 0票数 0

我有一个Edge.java班。当我在OpenJML中运行它时,会发生这样的情况:

error: An internal JML error occurred, possibly recoverable. Please report the bug with as much information as you can. Reason: com.sun.tools.javac.code.Symbol$TypeSymbol cannot be cast to com.sun.tools.javac.code.Symbol$ClassSymbol

奇怪的是,我还没有开始使用jml符号。

我的jdk是1.7,openjml是当前的(重新下载两者以确保)。

这是用于运行openjml的命令(遵循站点中的示例):java -jar "E:\Downloads\openjml\openjml.jar" -esc -prover z3_4_3 -exec "E:\Downloads\z3-4.3.0-x64\bin\z3.exe" -noPurityCheck Test.java

编辑:我可以确认,即使是带有泛型的非常简单的类也会导致此错误:

代码语言:javascript
复制
public class Test<T> {
    T i;
}

Edge.java

代码语言:javascript
复制
public class Edge<K> implements Comparable<Edge<K>> {
    public K n1, n2;
    public int weight;

    public final int tiebreaker;
    public static int nextTiebreaker = 0;

    public Edge(K n1, K n2, int weight) {
        this.n1 = n1;
        this.n2 = n2;
        this.weight = weight;
        tiebreaker = nextTiebreaker++;
    }

    @Override
    public int compareTo(Edge<K> o) {
        if(this.weight > o.weight) return +1;
        if(this.weight < o.weight) return -1;

        return tiebreaker - o.tiebreaker; //Same cost, pick one to be the "larger" 
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-07 15:06:13

我找到的解决办法是删除-esc选项(运行扩展静态检查)。不确定解决这个问题的正确方法。

票数 0
EN

Stack Overflow用户

发布于 2016-01-29 07:07:33

我也面临着类似的问题,但是在-esc目录下对B.java文件使用temp_release选项。

代码语言:javascript
复制
java -jar openjml.jar -noPurityCheck -esc  -progress -exec /Library/bin/z3 -prover z3_4_3 B.java
Proving methods in B
Starting proof of B.B() with prover z3_4_3
error: An internal JML error occurred, possibly recoverable.  Please report the bug with as much information as you can.
  Reason: Unexpected result when querying SMT solver for reason for an unknown result: success
Completed proof of B.B() with prover z3_4_3 - with warnings

B.Java是

代码语言:javascript
复制
public class B { /*@ invariant true; */ }.

Completed proving methods in B
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23489994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档