哪位高手可幫小弟一個忙,十萬火急!!!在java執行緒中可不可以呼叫JNI
在一個執行緒地run()方法中呼叫一個方法,該方法例項化一個包含本地方法呼叫的方法,可是該執行緒執行到該方法時就無反映了。
具體相關程式如下:
1。主程式
public class testJni
{
public static void main(String[] args)
throws java.io.IOException
{
Thread manager = new Thread(new testThread());
manager.setDaemon(true);
System.out.println("input 'exit' thread will stop.....");
manager.start();
}
}
2。執行緒
public class testThread
implements Runnable
{
public testThread()
{
}
public void run()
{
while(true)
{
long t = System.currentTimeMillis();
try
{
int intGetDecryptWPSFile = getDecryptWPSFile(args[0],args[1]);
}
catch(Exception e)
{
System.err.println("error is " + e.toString());
return;
}
try
{
Thread.sleep(1000);
}
catch(InterruptedException e)
{
}
}
}
private synchronized int getDecryptWPSFile(String strDocFileName,String strDecryptFileName)
{
int intTmp = -1;
DecryptWPSFile app = new DecryptWPSFile();
//decrypt是一個本地方法,由c++寫成,編譯為dll
intTmp = app.decrypt(strDocFileName,strDecryptFileName);
return intTmp;
}
}
3.呼叫本地方法的類
public class DecryptWPSFile {
static
{
//loadLibrary
System.loadLibrary("dll's name");
}
public native int decrypt(String str1, String str2);
}
具體相關程式如下:
1。主程式
public class testJni
{
public static void main(String[] args)
throws java.io.IOException
{
Thread manager = new Thread(new testThread());
manager.setDaemon(true);
System.out.println("input 'exit' thread will stop.....");
manager.start();
}
}
2。執行緒
public class testThread
implements Runnable
{
public testThread()
{
}
public void run()
{
while(true)
{
long t = System.currentTimeMillis();
try
{
int intGetDecryptWPSFile = getDecryptWPSFile(args[0],args[1]);
}
catch(Exception e)
{
System.err.println("error is " + e.toString());
return;
}
try
{
Thread.sleep(1000);
}
catch(InterruptedException e)
{
}
}
}
private synchronized int getDecryptWPSFile(String strDocFileName,String strDecryptFileName)
{
int intTmp = -1;
DecryptWPSFile app = new DecryptWPSFile();
//decrypt是一個本地方法,由c++寫成,編譯為dll
intTmp = app.decrypt(strDocFileName,strDecryptFileName);
return intTmp;
}
}
3.呼叫本地方法的類
public class DecryptWPSFile {
static
{
//loadLibrary
System.loadLibrary("dll's name");
}
public native int decrypt(String str1, String str2);
}
相關文章
- 高手請幫忙看看小弟寫的這個web service:Web
- 哪位高手幫幫我
- 一個執行緒的問題。請大俠進來幫幫忙看看執行緒
- 高手幫忙
- 高手幫忙!
- 各位高手幫幫忙吧!servlet多執行緒問題,詳細內容請進!!!Servlet執行緒
- Java 可中斷執行緒Java執行緒
- 請高手幫忙!
- 急,高手幫忙!
- 希望高手幫助一下 ,小弟在這裡感謝了
- 一個寫xml的問題,高手幫忙啊!XML
- 高手、板主幫忙,一個加密的問題!!!加密
- 急!!請高手幫忙
- jbuilder高手請幫忙UI
- 請各位高手幫忙!
- 需要高手幫忙~~
- 奇怪!!奇怪!真是不可理解。哪位大哥幫幫忙。
- 一個郵件的JAVABEAN問題,請高手幫忙JavaBean
- Java中一個物件在多執行緒中是共享的Java物件執行緒
- Android JNI 中的執行緒操作Android執行緒
- [求助]求助java 高手幫忙做畢設,急!Java
- 麻煩各位高手幫忙
- 急!!!高手來幫忙呀!!
- 急!!!高手快來幫忙!!!
- 透過jstack檢視java執行緒在忙什麼JSJava執行緒
- performSelector:withObject:afterDelay: 在子執行緒中呼叫不執行performSelectorObject執行緒
- java學習中遇到的問題 請高手幫忙 線上等Java
- 【Java面試】如何中斷一個正在執行的執行緒?Java面試執行緒
- 在Java中如何優雅的停止一個執行緒?可別再用Thread.stop()了!Java執行緒thread
- 實在是解決不了,請各位高手幫忙
- 哪位高手幫忙破解一下,advanced system agent!用asprotect壓縮,我解不開。 (96字)
- 高手幫忙解決兩道JAVA題,跪謝!!Java
- 哪位是真正的大師?幫小弟解決這個問題,不勝感激
- Java執行緒:執行緒中斷Java執行緒
- 請高手幫忙分析一個JSP小程式的問題JS
- NIO Socket的2個問題?請高手幫忙!
- 請熟悉混沌原理和c高手幫個忙 (轉)
- 第一個執行WebAssembly的Java庫:Wasmer JNIWebJavaASM