您现在的位置是:首页
>
java调用exe程序 在 java 里面调用 CUI 程序的方法
在 java 里面调用 CUI 程序的方法 问题描述 该函数在wi 平台上面调用不是很成功 GUI会可以调出来 但可能和屏蔽调其中的一些用到CUI的功能 而调用CUI如ma m exe是很不
在 java 里面调用 CUI 程序的方法

问题描述 该函数在win平台上面调用不是很成功 GUI会可以调出来 但可能和屏蔽调其中的一些用到CUI的功能 而调用CUI如masm exe是很不成功 出现一个黑屏 没用内容 或者根本不有结果 其程序如下 class RunThread{ Process t public void run(){ try{ t = java lang Runtime getRuntime() exec( c:\masm exe ); }catch(java io IOException e ) { System out println(e); } } } /************************************************/ class RunExeNative{ public static void main(String args[]){ RunThread RT = new RunThread(); RT run(); } } 下面是JNI + C 的本地化的实现方法 写一个 CallExeNative h 步骤如下 step one : /**** CallExeNative java ****/ 编写CallExeNative java文件 import java lang *; class CallExeNative{ public native static void CEN(); static { System loadLibrary( CallExeNative ); } } 在命令行里用: javac CallExeNative java javah CallExeNative 然后你就多了一个 CallExeNative h 它的文件如下 #include <jni h> #ifndef _Included_CallExeNative #define _Included_CallExeNative #ifdef __cplusplus extern C { #endif /* * Class: CallExeNative * Method: CEN * Signature: ()V */ JNIEXPORT void JNICALL Java_CallExeNative_CEN (JNIEnv * jclass); #ifdef __cplusplus } #endif #endif 这个文件不用改 下面要写一个CallExeNative c文件 该函数的功能是将你的CUI文件调出来 文件如下 #include C:CallExeNative h #include <stdio h> #include <process h> #include <conio h> JNIEXPORT void JNICALL Java_CallExeNative_CEN(JNIEnv* env jclass cl) { char prog[ ]; printf( Hello CallExeNative!n ); printf( Enter name of program to exec: ); gets( prog ); _execl( prog prog _execl o NULL ); } 现在visual c++ 的cl 功能在命令行下 c:>cl /LD CallExeNative c 之后你 会发现生成了一个CallExeNative dll文件 现在写RunExeNative java文件 import java lang *; class CallExeNative{ public native static void CEN(); static { System loadLibrary( CallExeNative ); } } /************************************************/ class RunExeNative{ public static void main(String args[]){ CallExeNative CEN = new CallExeNative(); CEN CEN(); } } 同样用 javac RunExeNative java java RunExeNative 之后你就会发现提示你输入CUI文件的路径 你输入路径即可! 说明 要注意的是CallExeNative h和CallExeNative dll应该都在同一个文件夹(我的是在c:jdk _ bin) 不足之处 破坏了java的移植性!而且你想想看 同样的功能在VB下用Shell(filepath windowstyle)很容易就搞定 你还会用java吗?我写这篇文章的目的是希望大家找到一种更好的方法来实现这个功能 lishixinzhi/Article/program/Java/hx/201311/25805
很赞哦! (1034)
相关文章
- Java NIO用法详解
- Java多线程之Executor框架<Callable、Future、Executor和ExecutorService>
- Java并发 executors框架设计理念
- java文件怎么打包成exe 在java中java.exe文件是指什么
- 没有应用程序可执行此程序 java中如何执行一个应用程序
- java编程有什么用 学JAVA编程都要下什么软件
- java直接调用方法 在Java里面调用CUI程序的方法
- 线程协程 使用技巧:Java程序开发中如何应用线程
- 编辑java程序需要什么命令 java的作用?它能写.exe程式吗?
- poi创建excel Java利用poi读写Excel需要注意的问题
爱学记

微信收款码
支付宝收款码