- 浏览: 691270 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (181)
- Matlab (16)
- Java (26)
- autoHotkey (4)
- openCV (1)
- C++ (50)
- PDF-XChange Viewer (2)
- 学术 (11)
- javascript (4)
- linux (11)
- SWT (9)
- latex (7)
- GAE (2)
- windows (6)
- C# (3)
- PS (20)
- JNI (4)
- latex,批处理 (0)
- 批处理 (4)
- Android (5)
- 矩阵论 (1)
- SVM (1)
- 概率图模型 (0)
- Python (12)
- Eigen (5)
- 编程题 (1)
- MKL (1)
- 神经网络 (9)
- 最优化 (2)
- 摄影 (1)
- PPT (0)
- After Effects (3)
- CUDA (3)
- caffe (0)
- MXNet (2)
- svn (1)
- R (0)
- 虚拟机 (0)
- tensorflow (7)
- theano (1)
- Keras (1)
- vim (1)
- xgboost (1)
- spark (6)
- eclipse (2)
- word2vec (0)
- hadoop (1)
- dmlc (1)
- git (0)
最新评论
-
jeffersonz:
请问大神,这个插件记录下来的脚本为什么不能再Extendscr ...
PhotoShop - 记录PS的所有操作为JavaScript代码 -
cherishLC:
Andy__Zou 写道cherishLC 写道Andy__Z ...
Eigen的编译选项;MKL的使用 -
Andy__Zou:
cherishLC 写道Andy__Zou 写道cherish ...
Eigen的编译选项;MKL的使用 -
cherishLC:
Andy__Zou 写道cherishLC 写道Andy__Z ...
Eigen的编译选项;MKL的使用 -
Andy__Zou:
cherishLC 写道Andy__Zou 写道 您好,您的工 ...
Eigen的编译选项;MKL的使用
以下程序打包成jar后在生成的.class文件的根路径(如elcipse工程的bin文件夹)下运行即可!!
生成的.h文件放在当前目录的h文件夹下
生成的.h文件放在当前目录的h文件夹下
import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class GenerateHFile { static String suffix = ".class"; static String outputFolder = ".\\h\\";//输出文件夹 /**生成以classRoot为根文件夹的类的JNI用的.h文件,其中folder为当前路径,他应为classRoot的一个子路径 * @param folder 当前文件夹 * @param classRoot 类文件的根路径 */ static void generateHFile(File folder, File classRoot) { File fs[] = folder.listFiles(); for (File file : fs) { if (file.isDirectory()) { generateHFile(file, classRoot); } else if (file.getName().endsWith(suffix)) { String exe = "javah"; String arg = classRoot.getAbsolutePath(); String tmp = file.getAbsolutePath(); tmp = tmp.substring(arg.length() + 1, tmp.length() - suffix.length()); tmp = tmp.replace(File.separator.charAt(0), '.'); String cmds[] = { exe, "-d", outputFolder,"-classpath",arg, tmp }; try { Process p = Runtime.getRuntime().exec(cmds); p.waitFor(); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(arg); } } } static String prefix = "JNIEXPORT"; /** * 清除不包含native方法的h文件,根据文件中是否含有"JNIEXPORT"来进行判断 */ static void clean() { File[] fs = new File(outputFolder).listFiles(); Label: for (int i = 0; i < fs.length; i++) { try { BufferedReader br = new BufferedReader(new FileReader(fs[i])); while (br.ready()) { String s = br.readLine(); if (s.startsWith(prefix)) { continue Label; } } br.close(); System.out.print("has deleted successfully: " + fs[i]); boolean b = fs[i].delete(); System.out.println(" : " + b); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } public static void main(String[] args) { File dir = new File("."); new File(outputFolder).mkdirs(); generateHFile(dir, dir); clean(); } }
发表评论
-
lambda表达式
2014-08-20 21:47 1906仅作备忘,要学习还是看给的链接吧 1、C++ 中文介绍:htt ... -
利用Doxygen生成C++、Java文档
2013-04-08 16:15 4465示例程序、配置文件及doxygen常见参数文字版参见本文附件 ... -
删除citeulike导出的bib文件中的中文字符,使之能在WinEdt中读取
2012-12-06 18:57 1815在使用Citeulikehttp://citeulike.or ... -
使用jsoup分析网页
2012-12-05 16:12 2688之前用过HTMLParser,许久不更新的东西了,印象中也没那 ... -
JNI中基本类型数组的传递方法(无需拷贝数据!!!)
2012-10-23 17:11 183610、先来看一下主要用到哪些函数: GetIntArrayEle ... -
swig--在java、C#中调用c++写的DLL(以vs2012配置为例)
2012-10-02 22:06 72181、下载、安装: 到http://www.swig.org/d ... -
GAE学习笔记——静态文件、资源文件;GAE中使用velocity模板
2012-07-13 21:49 1450参考资料:https://developers.google. ... -
Google application engine 的Eclipse配置方法
2012-07-11 19:52 15791、安装google的eclipse插件 到https://d ... -
javadoc命令
2012-04-06 14:54 1388以下内容引用自(原文更全):http://hi.baidu.c ... -
java7文件夹监控
2012-04-04 11:23 2962java7的文件夹监控真是太烂了,折腾了一天,封装的差不多了, ... -
SWT学习笔记——JFace中TableViewer的使用及注意事项
2012-04-01 15:26 3441问题: 1、使用CellEditor ... -
SWT学习笔记——JFace中TableViewer的使用及注意事项
2012-04-01 14:52 0问题: 1、使用CellEditor时出现org.eclips ... -
SWT学习笔记——SWT、JFace的配置(含源代码、javadoc的获取)
2012-04-01 14:08 2466具体的可以看官方的http://wiki.eclipse.or ... -
SWT学习笔记7——组件背景图片,鼠标事件,鼠标样式
2012-03-31 11:00 3709import org.eclipse.swt.grap ... -
SWT学习笔记6——Shell相关的事件
2012-03-31 10:23 1546这里有详细的事件列表:http://blog.csdn.net ... -
SWT学习笔记5——简易的多标签文本编辑器
2012-03-30 22:18 2279import java.io.BufferedRead ... -
SWT学习笔记4——系统托盘 system tray
2012-03-30 15:59 1585import org.eclipse.swt.widg ... -
SWT学习笔记3——颜色、字体、图片
2012-03-30 09:41 5873import org.eclipse.swt.gra ... -
SWT笔记2——测试UI线程的事件处理
2012-03-29 21:36 1405import org.eclipse.swt.widg ... -
SWT笔记1,组件的关系,屏幕信息
2012-03-29 21:20 1424import org.eclipse.swt.widg ...
相关推荐
- 通过 `javah` 命令生成 `.h` 头文件。 2. **使用 C/C++ 实现本地方法**: - 在工程的根目录下创建 `jni` 文件夹。 - 创建 `.c` 文件以实现 `.h` 文件中定义的本地方法。 3. **生成动态链接库 .so 文件**: - ...
- **头文件生成**:使用`javah`命令自动生成所需的C/C++头文件。 - **Makefile配置**:通过编写`Android.mk`文件配置编译规则,确保正确生成`.so`库。 - **调试与运行**:完成编译后,通过Eclipse运行应用进行调试和...
- 使用 `javah` 命令生成相应的 `.h` 头文件。 2. **实现本地方法** - 在项目的 `jni` 文件夹下创建对应的 `.c` 或 `.cpp` 文件,实现 Java 类中声明的本地方法。 - 示例代码如下: ```c #include ...
注意需要包含 `jni.h` 和之前生成的 `HelloWorld.h` 头文件,并且函数名必须与生成的签名一致。 4. **编译本地库**: 在 Windows 下,可以使用 VC 的 `cl` 命令进行编译。 ```sh cl -I%JAVA_HOME%\include -I%...
1. **JNI函数声明**:使用`javah`命令自动生成的JNI头文件(如`NDKtestJNI.h`),包含了Java类中所有声明为native的方法的C/C++函数原型。例如,你可能会看到一个名为`JNIEXPORT void JNICALL Java_...
创建对应的JNI头文件,通常命名为`my_function.h`,它将定义Java可以调用的C函数原型。在Android Studio中,可以使用`javah`命令自动生成,或者直接手动编写。例如: ```c /* DO NOT EDIT THIS FILE - it is ...
- 这样就会在`app/src/main/`目录下生成一个`jni`文件夹。 ##### 4.3 配置相关文件 - **4.3.1 配置`app`下的`build.gradle`文件** 确保`ndk`块位于`defaultConfig`内部,参照以下示例进行配置: ```groovy ...
这将生成一个`.h`文件,该文件包含了C/C++代码所需的Java类和方法的声明。 6. **拷贝头文件**:将生成的头文件移动到`jni`文件夹下,这样C/C++编译器就知道需要实现哪些函数。 7. **构建原生库**:编辑`Android.mk...
这个"jni_demo学习样例"是一个用于教学和实践的资源包,包含了学习JNI开发所需的基础元素。 首先,我们来看"使用eclipse直接生成so文件.pdf",这可能是一个指南,详细解释了如何在Eclipse集成开发环境中配置和构建...
`jre` 文件夹代表 Java 运行时环境 (Java Runtime Environment),它包含了运行 Java 程序所需的所有库文件和工具。与 `JDK` 不同的是,`jre` 不包含编译工具和其他开发工具,只用于运行已编译好的 Java 程序。 ####...
这个头文件包含了方法的原型和JNI函数调用所需的类型转换。 3. **C++代码实现**:在生成的头文件中,我们可以编写具体的C++实现,完成本地方法的功能。在本例中,这可能包括初始化Box2D世界,创建物理对象,处理...
- 解压zip文件:首先,你需要将"libwebp-0.4.2-windows-x64.zip"解压到本地文件夹,得到所需的库文件。 - 配置环境:在Java项目中,确保正确设置库路径,并将相应的.dll文件添加到系统的PATH环境变量。 - 编写...
例如,如果开放平台提供了C/C++开发的二进制数据解析服务,且给出了相应的.h头文件,那么在Java中直接调用并解析这些数据可能会相当复杂且效率不高。 #### 解决方案概述 为了解决上述问题,一种常见的策略是请求C++...
`centos-java-gdal.zip`文件包含了完成这一过程所需的所有步骤和资源。这个压缩包很可能是为了解决Java在CentOS系统上与GDAL库的集成问题,使得Java代码可以直接调用GDAL的函数,从而提高性能和效率。 GDAL是一个...
最后,根据操作系统选择合适的方式来选择所需的Android Platform和其他组件。在Windows系统下,可以运行SDKSetup.exe;在Linux系统下,则需要运行位于tools目录下的`android`命令。 完成上述步骤后,便可以在...
NDK 是一套用于Android平台的交叉编译工具集,它包括了编译、链接以及生成动态或静态库所需的各种工具。在Windows下配置NDK,首先需要下载适用于Windows的NDK版本,如NDK r19c或更高版本。解压后,将NDK路径添加到...
5. **lib** 目录:包含了运行Java应用程序所需的库文件,如类库(rt.jar)、JVM库(jli.dll)和其他辅助工具。 6. **legal** 目录:存放了关于软件许可的法律文件,确保合规性。 7. **man** 目录(如果存在):...
最后,在Android Studio中右击jni文件夹执行ndk-build命令,即可生成所需的.so文件。如果在构建过程中遇到任何问题,可以通过查看logcat中的信息来诊断错误原因,进而解决问题。最后,通过运行应用来测试native方法...
这个压缩文件包含了开发和运行Java应用程序所需的所有组件。 【描述】中连续三次提及"jdk-8u261-windows-x64",暗示了这是关于Java 8 Update 261的重点讨论,可能是在强调其重要性或确保用户了解这个特定版本。 ...
基于NDK TOOL的动态库实现,包含JNI调用、动态库的编译。 1、编译本地调用的JAVA类 2、使用javah从JAVA类中转换成相应的头文件(已有...3、实现相对应的*.c并调用C组件(在jni文件夹下) 3、使用C实现所需功能的C组件