【问题标题】:Pass a file reference to the Jni interface of Scip将文件引用传递给 Scip 的 Jni 接口
【发布时间】:2016-05-18 14:16:06
【问题描述】:

我通过 Jni 接口使用 Java api 中的 Scip 求解器。

我想将我的 lp 模型转储到一个文件中。

为此,原生API中有如下c方法

extern SCIP_RETCODE SCIPprintOrigProblem(
SCIP* scip, /**< SCIP data structure */
FILE* file, /**< output file (or NULL for standard output) */
const char* extension, /**< file format (or NULL for default CIP format)*/
SCIP_Bool genericnames /**< using generic variable and constraint names? */
);

该方法对应公共抽象接口de.zib.jscip.nativ.NativeScip中的如下java方法

public abstract void printOrigProblem(long arg0, long arg1, java.lang.String arg2, boolean arg3) throws de.zib.jscip.nativ.NativeScipException;

当我给第二个参数一个零值时,方法工作正常:线性公式在标准输出中返回,正如预期的那样。

现在我想指定转储线性公式的文件。

所以我想在方法的第二个参数中传递一个引用。

native 方法需要一个 FILE*,而 java 方法需要一个 long。

问题是我必须为第二个参数传递什么值?

【问题讨论】:

    标签: java java-native-interface scip


    【解决方案1】:

    我猜你应该使用对应于SCIPwriteOrigProblem的函数writeOrigProblem

    【讨论】:

    • 使用 writeOrigProblem 确实可以解决这个问题。所以我的问题解决了。我仍然想知道是否可以通过 jni 接口传递文件。
    • 应该可以,但是您可能需要扩展接口,因为没有 SCIP 函数可以接收字符串并返回 FILE*。
    猜你喜欢
    • 1970-01-01
    • 2013-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多