2016-05-18 77 views
0

我通過Jni接口從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? */ 
); 

該方法對應於以下的java方法使用公共抽象接口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; 

當我爲第二個參數給出一個零值時,方法可以正常工作:如預期的那樣,線性公式將在標準輸出中返回。

現在我想指定轉儲線性公式的文件。

所以我想在該方法的第二個參數中傳遞參考。

本地方法需要FILE *,而java方法需要很長時間。

問題是我必須通過什麼作爲第二個參數的值?

回答

1

我想你應該使用功能writeOrigProblem這對應於SCIPwriteOrigProblem

+0

使用writeOrigProblem的確可以解決這個問題。所以我的問題解決了。我仍然想知道是否可以通過jni接口傳遞文件。 –

+0

它應該是可能的,但您可能需要擴展接口,因爲沒有接收字符串並返回FILE *的SCIP函數。 – mueldgog