我用c++做的一个对话框可以通过接收Java界面通过命令行传递的参数用exec来调用,但是Java怎么接收c++的数据呢?比如c++中用print输出到命令行,
解决方案 »
- 急急急!!!
- 关于JAVA异常处理的问题
- 怎样在MyEclipse中将一个java的程序打包成一个可执行文件呢???
- com.macromedia.flash.*类包在什么地方可以下载到。
- oracle817是不是支持可更新的resultset?
- 给个例子讲讲好么,谢谢:)
- 熟悉xp mode的帮忙看下, 主机ping不通虚拟机
- 过年了,祝大家新年快乐,顺便散点分
- 请问如何在javax.swing.JTextPane组件中显示带删除线的文字?
- ....新手傻问题:怎么样添加java解释器至PATH环境变量??
- 这几个题目我吃不准
- String s1 = new String(“aaa”);语句创建的对象new String("aaa")中存储的是地址还是字符串常量值?
用runtime执行命令
我不想用jni,因为,c++有好几个文件,头文件。
// Execute command
String command = "ls";
Process child = Runtime.getRuntime().exec(command);
// Get the input stream and read from it
InputStream in = child.getInputStream();
int c;
while ((c = in.read()) != -1) {
process((char)c);
} in.close();
} catch (IOException e) {
... // do something
}
//~--- JDK imports ------------------------------------------------------------
import com.sun.jna.Library;
import com.sun.jna.Native;
class Main {
public static void main(String[] args) {
int m=CLibrary.INSTANCE.add(1,2);
}
public interface CLibrary extends Library {
CLibrary INSTANCE = (CLibrary) Native.loadLibrary("test", CLibrary.class);
int add(int a,int b);
}
}这个运行时为什么总出现这个错误
run:
Exception in thread "main" java.lang.UnsatisfiedLinkError: Error looking up function 'add': ÕҲ»µ½ָ¶¨µ
at com.sun.jna.Function.<init>(Function.java:126)
at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:219)
at com.sun.jna.Library$Handler.invoke(Library.java:191)
at $Proxy0.add(Unknown Source)
at 混合编程试验.Main.main(Main.java:7)
Java Result: 1
成功生成(总时间:2 秒)
其中的test.dll我已经放在正确的目录下了,而且,还做了个c++exe试验过,可以调用test.dll的,但为什么用Java调用时总出错?