linux下怎么使用 JAVE

如题所述

第一步:

写一个JniTest.java文件,内容如下

public class JniTest

{

static

{

System.loadLibrary("Hello");

}

public native void output();

public static void main(String[] args)

{

System.out.println(System.getProperty("java.library.path"));

JniTest test = new JniTest();

test.output();

}

}

使用javac编译.java文件

再使用javah -jni JniTest会生成一个JniTest.h的头文件,内容如下

/* DO NOT EDIT THIS FILE - it is machine generated */

#include <jni.h>

/* Header for class JniTest */

#ifndef _Included_JniTest

#define _Included_JniTest

#ifdef __cplusplus

extern "C" {

#endif

/*

* Class: JniTest

* Method: output

* Signature: ()V

*/

JNIEXPORT void JNICALL Java_JniTest_output

(JNIEnv *, jobject);

#ifdef __cplusplus

}

#endif

#endif

注意:

1.public native void output(),这个方法可以看作接口中的一个方法,只不过是由外部的其他语言(这里是C)来实现这个方法。

2.静态块里的System.loadLibrary(String s)方法是根据字符串s,去java.library里去加载名为"lib" + s +
".so"的动态库文件(Windows下为dll).

这样就可以访问native方法了。

3.可以通过System.out.println(System.getProperty("java.library.path"));来获取java.library的具体路径,后面要用到。

第二步:

根据JniTest.h头文件,编写jni_test.c文件实现相应的方法

#include <stdio.h>

#include "JniTest.h"

#include <jni.h>

JNIEXPORT void JNICALL Java_JniTest_output(JNIEnv * jnienv, jobject job)

{

printf("Hello,ZYC!/n");

}

然后在SHELL下将其编译成动态链接库

$gcc -shared -I /usr/lib/jvm/java-6-sun-1.6.0.22/include/ -I
/usr/lib/jvm/java-6-sun-1.6.0.22/include/linux/ -I /usr/include/ jni_test.c -o
libHello.so

gcc参数解释(可以通过man gcc查看)

-shared 该选项指定生成动态连接库,不用该标志外部程序无法连接。相当于一个可执行文件

-I
包含路径,这里/usr/lib/jvm/java-6-sun-1.6.0.20/include下包含的jni.h,/usr/lib/jvm/java-6-sun-1.6.0.20/include/linux下包含的是jni-mid.h,/usr/include/包含用户的.h文件

-o file 将内容写入file中,这里写入libHello.so

然后就会生成libHello.so这个文件。

第三步:

执行方法:

1.单次执行时候指定library位置

java -Djava.library.path=. JniTest

2.将通过java library来执行

$sudo cp libHello.so
/usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/i386/client/

后面的路径就是通过System.out.println(System.getProperty("java.library.path"))获取到的

然后java JniTest即可看到结果,亦可以在eclipse下使用

输出结果:

dane-zhu@dane-zhu-desktop:~/workspace/JavaJni/src$ java JniTest

/usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/i386/client:/usr/lib/jvm/java-6-sun-1.6.0.22/jre/lib/i386:/usr/lib/jvm/java-6-sun-1.6.0.22/jre/../lib/i386:.:.:.::/usr/java/packages/lib/i386:/lib:/usr/lib

Hello,ZYC!

That'OK!
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-09-14
楼上的几位,人家说的是jave 不是 java ....jave是一个开源jar包,这个在windows和linux中都是可以使用的,在源码中人家就写了windows和非win的识别
第2个回答  2014-12-30
安装JRE,java runtime environment.
第3个回答  2014-12-30
安装就行了
需要帮忙吗?
第4个回答  2014-12-30
装好jdk就可以用java了

Linux下Java环境快速启动指南linuxjava启动
一、安装 openjdk 首先,我们需要安装openjdk,这是一个用于开发和运行Java程序的免费工具包。在Ubuntu、Debian系统中,可以用以下命令前往安装OpenJDK:sudo apt-get install openjdk-8-jdk 其中,openjdk-8-jdk表示安装的JDK版本。如果您想要安装更高版本的OpenJDK,可以使用以下命令来进行更新:sudo ap...

java在linux环境下的配置
export CLASSPATH=.:$JAVA_HOME\/lib\/dt.jar:$JAVA_HOME\/lib\/tools.jar 注意:1.要将 \/usr\/share\/jdk1.5.0_05jdk 改为jdk安装目录 2. linux下用冒号”:”来分隔路径 3. $PATH \/ $CLASSPATH \/ $JAVA_HOME 是用来引用原来的环境变量的值在设置环境变量时特别要注意不能把原来的值给覆盖掉...

我想让一个Java程序在Linux下以后台进程的方式运行,环境是ubuntu,请问...
1. 在Linux环境下,若要让Java程序作为后台进程运行,首先确保程序设计中包含了相应的守护进程机制,例如使用`java -jar your-application.jar &`命令启动程序。2. 一旦程序运行,可以通过按下`Ctrl+Z`将程序置于后台。3. 使用`jobs`命令查看当前终端运行的进程列表,找到你的Java程序对应的行。4. 通...

linux下怎么安装java?
1. 打开终端,使用cd命令切换到Java安装包所在的目录。2. 使用tar命令解压缩安装包。例如,如果安装包名为jdk-8u171-linux-x64.tar.gz,则执行命令`tar -zxvf jdk-8u171-linux-x64.tar.gz`。3. 进入解压后的目录,例如`cd jdk1.8.0_171`。4. 设置环境变量,使系统能够找到Java命令。可以...

linux 上面怎么搭建java开发环境
在Linux上面搭建java开发环境的步骤如下:1、JDK的安装:执行下面命令安装JDK(首先创建\/opt\/java目录)tar -xvf jdk-7u9-linux-i586.tar.gz -C \/opt\/java ln -s \/opt\/java\/jdk1.7.0_09 \/opt\/java\/jdk 创建一个链接 vi \/etc\/frofile 设置环境变量 exort JAVA_HOME=\/opt\/java\/jdk ex...

linux系统怎样进行java开发
1、下载linux环境下的JDK,举例:JDK程序名为:jdk-7u11-linux-i586.tar.gz 保存路径:\/home\/wyl\/tools-wyl\/JDK7u11 eclipse程序名为:eclipse-jee-juno-SR1-linux-gtk.tar.gz 保存路径:\/home\/wyl\/tools-wyl\/eclipse-javaEE 2、解压下载的jdk-7u11-linux-i586.tar.gz文件 chmod 777 jdk-7u...

linux下怎么安装java环境
Linux系统中安装Java步骤:1.选择你所有安装的操作系统类型(Linux,Linux AMD64,Solaris等)。一旦已经选择下载文件──要么是自解压缩执行文件,要么是自解压缩的RPM文件,可以安装它。当前,最新的版本是5.0:mkdir -p \/usr\/local\/java cd \/usr\/local\/java mv \/path\/to\/jre-1_5_0_05-linux-...

如何在linux下安装java
一、Java安装之Java环境安装 1. 从sun主页下载JDK for Linux版本。这里下载的是jdk-6u6-linux-i586.bin。2. 用root用户登录ubuntu,或是在普通用户下用su命令切换用户。切换到所需的安装目录。类型:cd <目录路径名> 例如,要在 \/usr\/java\/ 目录中 安装软件,请键入:cd \/usr\/java\/, 把...

怎么在linux中运行jar
在Linux环境下运行Java的JAR文件,可以采用两种方式。首先,通过命令行操作,你可以在文件目录下直接使用`javac`命令,接着加上`-jar`选项和文件名,如`java -jar file.jar`。这种方式简单直接,无需创建桌面启动器。另一种方法是为JAR文件创建桌面启动器。在命令行中,输入`java -jar \/file路径\/...

linux jre下怎么运行java程序 达内
一、下载JRE;根据自己的机器来下载对应的版本,我的机器是 32位的X86机,所以只能下载 linux32目录中的 jre-1_5_0_04-linux-i586.bin;如果您是X86-64位机,就下载相对的;jre-1_5_0_04-linux-i586.bin For Linux32 二、解压和配置;1、释放软件包;[root@localhost sunjava]# ls jre-1...

相似回答