【JNI】javah使用(初步)
環境:window 7+ Eclipse
使用javah為已建立的Android工程創建頭文件
已建立的工程目錄大致如下:
?
?
其中MainActivity.java:
package com.amanda.readsysfilejni;import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.widget.TextView;public class MainActivity extends Activity {private TextView mText;public native String getSysInfo(String vFilePath,String vKey);public native String getSysInfoAll(String vFilePath);static {System.loadLibrary("sys_info"); } @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mText = (TextView)this.findViewById(R.id.text);mText.setText(getSysInfo("/proc/cupinfo","Processor"));}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.activity_main, menu);return true;}}?
我需要對MainActivity.java中使用的JNI對應的c代碼生成頭文件(初學JNI,不知道有沒有表達清楚??),使用javah工具,在命令行下依次輸入下述命令:
> cd D:\workspace3\ReadSysFileJNI\bin\classes??? --------進入工程的bin\classes目錄
> javah -classpath . -d D:/workspace3/ReadSysFileJNI/jni -jni com.amanda.readsysfilejni.MainActivity??? --------在jni目錄生成了com_amanda_readsysfilejni_MainActivity.h文件
?
另,附上javah的參數說明:
D:\workspace3\FirstJNI\bin>javah -help
用法:javah [選項] <類>
其中 [選項] 包括:
??????? -help???????????????? 輸出此幫助消息并退出
??????? -classpath <路徑>???? 用于裝入類的路徑
??????? -bootclasspath <路徑> 用于裝入引導類的路徑
??????? -d <目錄>???????????? 輸出目錄
??????? -o <文件>???????????? 輸出文件(只能使用 -d 或 -o 中的一個)
??????? -jni????????????????? 生成 JNI樣式的頭文件(默認)
??????? -version????????????? 輸出版本信息
??????? -verbose????????????? 啟用詳細輸出
??????? -force??????????????? 始終寫入輸出文件
使用全限定名稱指定 <類>(例如,java.lang.Object)。
轉載于:https://www.cnblogs.com/Amandaliu/archive/2013/03/26/2982815.html
總結
以上是生活随笔為你收集整理的【JNI】javah使用(初步)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [android] Serializab
- 下一篇: SQL Server 2000安装指南及