問題描述
該函數在win平台上面調用不是很成功
其程序如下
class RunThread{
Process t
public void run(){
try{
t = java
}catch(java
{
System
}
}
}
/************************************************/
class RunExeNative{
public static void main(String args[]){
RunThread RT = new RunThread();
RT
}
}
下面是JNI + C 的本地化的實現方法
寫一個
步驟如下
step one :
/**** CallExeNative
編寫CallExeNative
import java
class CallExeNative{
public native static void CEN();
static
{
System
}
}
在命令行裡用:
javac CallExeNative
javah CallExeNative
然後你就多了一個
它的文件如下
/* DO NOT EDIT THIS FILE
#include
/* Header for class CallExeNative */
#ifndef _Included_CallExeNative
#define _Included_CallExeNative
#ifdef __cplusplus
extern
#endif
/*
* Class: CallExeNative
* Method: CEN
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_CallExeNative_CEN
(JNIEnv *
#ifdef __cplusplus
}
#endif
#endif
這個文件不用改
下面要寫一個CallExeNative
文件如下
#include
#include
#include
#include
JNIEXPORT void JNICALL Java_CallExeNative_CEN(JNIEnv* env
{
char prog[
printf(
printf(
gets( prog );
_execl( prog
}
現在visual c++ 的cl 功能在命令行下
c:\>cl /LD CallExeNative
之後你 會發現生成了一個CallExeNative
/*include
CallExeNative
CallExeNative
*/
import java
/*load a native method : to call a native file*/
class CallExeNative{
public native static void CEN();
static
{
System
}
}
/************************************************/
class RunExeNative{
public static void main(String args[]){
CallExeNative CEN
CEN
}
}
同樣用
javac RunExeNative
java RunExeNative
之後你就會發現提示你輸入CUI文件的路徑
你輸入路徑即可!
說明
不足之處
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25777.html