public class HelloWorld {
public native void print(String str); //声明本地方法
public static void main(String[] args) {
new HelloWorld().print("world!");
//System.out.println(System.getProperty("java.library.path"));
}
static{
//System.loadLibrary("helloworld"); // 加载库文件
System.load("/Users/zhaoshun/solibs/libhello.so");
}
}
/**
*
* Class: jni_sample_HelloWorld
* Method: print
* Signature: (Ljava/lang/String;)V
*
JNIEXPORT void JNICALL Java_jni_sample_HelloWorld_print(JNIEnv *, jobject, jstring);
*/
#include <iostream.h>
#include <jni.h>
#include "jni_sample_HelloWorld.h"
using namespace std;
JNIEXPORT void JNICALL Java_jni_sample_HelloWorld_print(JNIEnv *env, jobject obj, jstring name)
{
const char* pname = env->GetStringUTFChars(name,NULL);
cout <<"Hello,"<< pname << endl;
}
/*
c文件中的这么写的
str = (*env)->GetStringUTFChars(env,prompt,NULL);
*/
编译
g++ -dynamiclib -o libhello.so HelloWorld.cpp -framework JavaVM -I/System/Library/Frameworks/JavaVM.framework/Headers
运行结果:
Hello,world!
分享到:
相关推荐
《Android JNI串口通信实践详解》 在移动设备开发领域,Android系统因其开源特性与丰富的功能,成为开发者们的首选平台。然而,对于某些特定的硬件交互,如串口通信(RS232),原生Java API往往无法满足需求,这时...
JNI在很多场景下都非常有用,比如优化性能、使用现有的C/C++库、或者像在这个“JniCallback.zip”文件中所展示的,实现应用层与本地代码之间的回调功能。下面我们将深入探讨这个主题。 1. **JNI基础知识**: JNI是...
《Android NDK与JNI开发详解:从Hello-JNI入门》 Android系统以其开源性和灵活性吸引了大量的开发者,而JNI(Java Native Interface)则是Android平台中连接Java层与原生C/C++代码的重要桥梁。JNI允许开发者在...
在JNI详解与实现的PDF文档中,可能会涵盖以下几个主要知识点: 1. **JNI基础知识**:介绍JNI的概念,它的历史,以及为何需要使用JNI。这通常包括Java平台的结构,如何在Java中创建本地方法,以及JNI头文件和库的...
### Android深入研究JNI详解 #### 一、JNI与Android中的.so库载入 在深入了解JNI(Java Native Interface)之前,我们需要明确一点:Android应用程序的主要部分是基于Java开发的,并且这些Java类会被编译成Dex格式...
通过《Android开发书籍 - JNI详解》这本书,读者不仅能够学到如何使用JNI在Java项目中集成C/C++代码,还能了解到JNI设计背后的理念和原理。这对于想要在Android应用开发中利用底层系统资源或提升性能的开发者来说是...
《Android NDK与JNI开发详解:HelloNDK实践》 Android Native Development Kit(NDK)是Google提供的一款工具集,允许开发者在Android平台上使用C/C++编写原生代码,从而提高应用程序的性能和效率。JNI(Java ...
Java通过JNI调用Vjoy_vjoy4java是一个技术性较强的话题,涉及到多个关键知识点,包括Java本地接口(JNI)、Vjoy、游戏控制器编程以及C++编程。以下将逐一详解这些内容。 1. Java本地接口(JNI): Java本地接口...
《Android平台上的JNI与avilib库的整合应用详解》 在Android开发中,JNI(Java Native Interface)是一种关键的技术,它允许Java代码与其他语言(如C++)进行交互,为高性能计算、系统调用或者利用已有的C/C++库...
《Android平台下的JNI与Hello-Oboe音频库实践详解》 在移动开发领域,尤其是在Android平台上,有时我们需要处理一些性能敏感或与硬件直接交互的任务,这时JNI(Java Native Interface)技术就显得尤为重要。JNI允许...
### Android中的JNI使用详解 #### 一、JNI概念与作用 JNI,即Java Native Interface,是一种标准机制,自Java 1.1版本起被引入,旨在实现Java代码与其他编程语言如C、C++或汇编语言编写的代码之间的交互。在...
### JNI详解:深入理解Java Native Interface #### 一、引言与翻译初衷 JNI(Java Native Interface)作为连接Java世界与本地C/C++世界的桥梁,其重要性不容小觑。本文旨在详细介绍Android环境下JNI的使用,帮助...
【JNI (Java Native Interface) 技术详解】 JNI(Java Native Interface)是Java平台标准的一部分,它允许Java代码和其他语言写的代码进行交互。JNI在Java应用程序中调用本地(非Java)代码,如C++,提供了强大的...
Android 深入研究 JNI 详解 JNI(Java Native Interface)是 Java 平台的一部分,允许 Java 代码和其他语言编写的代码进行交互。JNI 是本地编程接口,使得在 Java 虚拟机(VM)内部运行的 Java 代码能够与用其他...
《C++实现DLL快速屏蔽Ctrl+Alt+Del组合键详解》 在计算机编程领域,有时我们需要对特定的系统功能进行控制,例如屏蔽某些快捷键,以达到特定的安全或管理目的。本篇将深入探讨如何使用C++编程语言,创建一个动态...
### JNI详解及实例程序 #### 一、JNI简介 JNI(Java Native Interface)是一种机制,它允许Java程序调用C或C++程序中的函数,同时也可以让C或C++程序调用Java程序中的方法。使用JNI的主要原因包括但不限于: 1. *...
### Android下JNI入门详解 #### 一、JNI与VM简介 JNI(Java Native Interface)作为Android平台上连接Java层与C/C++层的关键桥梁,在开发过程中起着至关重要的作用。通过JNI,开发人员能够实现Java与C/C++代码之间...
### JNI详解中文版知识点概述 #### 一、JNI简介与重要性 JNI(Java Native Interface)是一种标准接口,由Sun Microsystems定义,旨在提供Java代码与本地代码(通常是C或C++编写的应用程序)之间的交互能力。JNI...
### Android JNI详解 #### 一、概述 Java Native Interface (JNI) 是一种强大的技术,它允许Java代码调用本地代码(如C/C++),从而在Android应用开发中发挥重要作用。JNI不仅增强了应用性能,还提供了丰富的功能...
这本书《JNI详解》是一部关于JNI的详细教程,内容可能包括以下几个主要部分: 1. **JNI基础**:介绍JNI的概念、历史背景和设计目标。这部分可能会讲解JNI如何作为一个桥梁,连接Java虚拟机(JVM)和本地代码,以及...