Java如何在Cmd实现清屏功能

参考

Java进阶: 使用 Jni 调用 Dll 的实现(使用VS2008 生成Dll)

http://www.cnblogs.com/charley_yang/archive/2011/03/15/1985494.html


前言

-----------------------本前言来自网络--------------------------

JNI技术的出现主要是基于三个方面的应用需求:

1. 解决性能问题 

2. 解决本机平台接口调用问题

3. 嵌入式开发应用
-------------------------前言结束--------------------------------

 

下面动手来使用Jni调用本地方法来调用Cls,其他情况请见参考资料。具体内容如下:

 

第一步:编写Java端代码

定义一个Java类Cls

package TestDemo;

/**
 * Created by DH on 2015-10-24.
 */
public class Cls {

    // 声明本地方法
    public native void clear();
    static {
        //加载DLL
        System.loadLibrary("ClsCPP");
    }

}

定义一个调用类ClsDemo

package TestDemo;

import java.util.Scanner;

public class ClsDemo {

    public static void main(String args[]){

        final Cls clearScreen = new Cls();

        System.out.println("Hello,world");
        Scanner sc = new Scanner(System.in);
        String temp = sc.nextLine();
        clearScreen.clear();

    }

}

编译整个包。

cmd进入生成.class的文件夹TestDemo所在的目录,执行javah TestDemo.Cls

以上是含有包的情况,若只有一个class,没有包,则在存在.class目录执行javah  Cls


第二步:生成DLL库

1. 打开VS2008,创建一个名称为ClsCPP的C++ Win32项目。在向导的应用程序类型处选择DLL,点完成。


设置Release编译配置。这个根据系统和编译器的设置,64位设置为x64位,32位的设置为x86



2. 将签名生成的TestDemo_Cls.h文件拷贝到ClsCpp项目的根目录下

3. 将jni.h和win32文件夹中的jni_md.h拷贝到项目的根目录中,它们在jdk目录中的include文件夹中。


4.然后在VS中右键头文件文件夹添加现有项把这个头文件包含进来,接下来就是编辑Cls.cpp文件。

其中TestDemo_Cls.h的内容是

/* DO NOT EDIT THIS FILE - it is machine generated */
#include "jni.h"
/* Header for class pacmanDemo_Cls */

#ifndef _Included_pacmanDemo_Cls
#define _Included_pacmanDemo_Cls
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     pacmanDemo_Cls
 * Method:    clear
 * Signature: ()V
 */
// 下边这一句要复制到Cls.cpp中
 JNIEXPORT void JNICALL Java_pacmanDemo_Cls_clear
  (JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif

所以Cls.cpp大概是这个样子的

#include "jni.h"
#include "pacmanDemo_Cls.h"
#include <stdio.h>
#include <stdlib.h>

JNIEXPORT void JNICALL Java_pacmanDemo_Cls_clear(JNIEnv *, jobject) {
	system("cls");
}

5.生成->生成解决方案,得到ClsCPP.dll,然后把它复制到jre文件夹的bin文件夹下。


第三步:运行Java调用DLL程序

cmd进入产生TestDemo所在的目录。

执行命令:java TestDemo/Main

随意输入一个字符

然后Helloworld被删除


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值