让我们想象一下,我在C ++和Java中有以下两个非常简单的代码片段:
C ++
#include <iostream>
using namespace std;
int main() {
string str = "Hello Java from C++";
cout << str << endl;
When reaching here, while running this C++ program, I would like to trigger the program to run my JAR and send str as a argument so the Java program can take it and set it as a String.
return 0;
}
爪哇
public class HelloWorld {
public static void main(String[] args) {
String str = argumentFromJAR; //take argument from the JAR and set it as a String
System.out.println("Got" + str + "from the C++ program");
}
}
执行C ++程序时,我希望它运行JAR文件并将其作为String传递给参数。 JAR已经创建,不知何故我想让这个String以Java结尾。
我很乐意为你提供帮助!哦,顺便说一句,如果重要的话,我会在CentOS上使用g ++运行C ++程序(Java也已经安装和测试)。
答案 0 :(得分:1)
您需要使用以下行调用jar:system("java filename.jar [args]");
同样在java文件中你必须做这样的事情:
String str = "";
for(int i = 0; i<args.length;i++) str += args[i];
System.out.println("Got" + str + "from the C++ program");
希望这有帮助。
答案 1 :(得分:0)
杰克弗里曼的答案基本上是正确的。但是,在代码片段中我应该更改两件小事:
建议的for循环会破坏正常的空格 在命令行中分隔参数。所以这是一个建议 kepps分隔空格并使所有参数传递给a 字符串:
function insertTableRow ( p_iId, d_prijs, c_prijs, code, artikelNL )
{
var $id = $('.buttonbewerken[data-id='+p_iId+']');
var row = '<tr>';
row += '<td class="d_prijs ruimte">'+d_prijs+'</td>';
row += '<td class="c_prijs ruimte">'+c_prijs+'</td>';
row += '<td class="code ruimte">'+code+'</td>';
row += '<td class="artikelnl ruimte">'+artikelNL+'</td>';
row += '<td><button data-id="'+p_iId+'" class="buttonbewerken">bewerken</button></td>';
row += '</tr>';
$('#result').prepend(row);
}