2011-03-11 90 views
1

我需要從一些C++代碼裏面執行一個jar文件。 jar文件從文本文件讀入一些數據,然後將一些信息寫入不同的文本文件。有沒有辦法在C++代碼中調用.jar文件?

我想

(void)system("filename.jar"); 

將做到這一點,但它似乎沒有。

+1

谷歌'開始Java程序',採取第二擊。 – 2011-03-11 07:11:04

+1

@Hans Passant:這個問題出現在Google之前還是之後? – MSalters 2011-03-11 08:39:57

+0

@HansPassant在未來,你會友善地鏈接到你引用的頁面嗎? Google搜索結果對於每個用戶都不相同,並且隨着時間推移而變化。 – StockB 2013-01-07 17:19:26

回答

3

,你應該調用Java適當的命令行 Java的罐子 「filename.jar」

更好的方法是,如果您需要C++和java之間的真正集成,則使用java本地接口(jni),但爲此您必須能夠修改jar文件中的源代碼。

+0

請注意,JNI在兩個不同的方向工作 - 您可以從Java調用本地代碼(這當然需要Java代碼來進行這些本地調用,所以如果它尚未這樣做,那麼它將需要修改) 。或者您可以使用本地代碼創建和管理JVM,我相信它也屬於「JNI」的旗幟。這不需要Java代碼中的任何特殊內容,並且可能是在這裏使用的所有內容。可以說'java'可執行文件本身就是一個方便的命令行版本。 – 2012-01-13 13:11:17

2

你需要如果你想簡單地調用罐子來調用Java虛擬機/ interperter

system("java filename.jar"); 
+2

而且您還必須使用'-jar'選項。 – 2011-03-11 07:15:32

相關問題