2016-05-18 3 views
0

Jiniインターフェイス経由でJava APIからScipソルバを使用します。ファイル参照をScipのJniインターフェイスに渡す

ファイルに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

public abstract void printOrigProblem(long arg0, long arg1, java.lang.String arg2, boolean arg3) throws de.zib.jscip.nativ.NativeScipException; 
パブリック抽象インタフェースで、次のJavaメソッドに対応します

2番目の引数にゼロの値を指定すると、メソッドが正常に動作します。線形式が期待どおりに標準出力に返されます。

ここで、線形式がダンプされるファイルを指定します。

私はメソッドの2番目のパラメータで参照を渡したいと思います。

nativeメソッドはFILE *を期待していますが、javaメソッドはlongを期待しています。

質問この2番目のパラメータの値として渡す必要があるのは何ですか。

答えて

1

SCIPwriteOrigProblemに対応するwriteOrigProblem機能を使用する必要があります。

+0

writeOrigProblemを使用すると、実際にこの問題が回避されます。だから私の問題は解決される。それでもjniインタフェースを介してFILEを渡すことが可能かどうかは疑問です。 –

+0

文字列を受け取ってFILE *を返すSCIP関数がないので、インタフェースを拡張する必要があるかもしれません。 – mueldgog

関連する問題