该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

mk文件

Main-Class: MainTest

Version: 0.1

Public-Data: Dec. 8,2015

Author: Fulton Shaw

Copyright: GPL

readme文件

API

==

public interface Console {

public void setConsoleCursorPosition(int x,int y);

public void setConsoleCursorOffset(int offx,int offy);

public Pair getConsoleCursorPosition();

public String getConsoleType();

public void resizeConsoleWindowSize(int size_x,int size_y);

public Pair getConsoleWindowSize();

public void hideConsoleCursor();

public void showConsoleCursor();

public void clearConsoleWindows();

}

以及

public class ConsoleWIndows implements Console;

文档结构

==

根目录

META-INF

MANIFEST.MF 清单文件

makefest.mk 自配置文件,版本信息,作者,授权等

fulton java包,package

util 次级包

Console.class Console接口

ConsoleWindows.class Console接口在Windows环境下的实现

Pair.class Pair对象

Util.class 使用工具包,封装了sleep,System.out.println等函数

src 源码文件,包括cpp和java

cpp cpp源文件,用于生成ConsoleWindows.dll动态库文件

ConsoleWindows.cpp

ConsoleWindows.h

fulton 对应的源代码包

util

Console.java 对应的源代码

ConsoleWindows.java

Pair.java

Util.java

ConsoleWindows.dll Windows环境下的本地c函数,用于调用设置光标位置

MainTest.class 主测试函数入口

readme.txt 帮助文档

源代码分析

==

接口:fulton.util.Console

作用:为windows和linux环境的光标移动提供统一的函数接口

package fulton.util;

import fulton.util.Pair;

/**

* Created by Fulton's PC on 2015/12/7.

*/

public interface Console {

public void setConsoleCursorPosition(int x,int y);

public void setConsoleCursorOffset(int offx,int offy);

public Pair getConsoleCursorPosition();

public String getConsoleType();

public void resizeConsoleWindowSize(int size_x,int size_y);

public Pair getConsoleWindowSize();

public void hideConsoleCursor();

public void showConsoleCursor();

public void clearConsoleWindows();

}

实现类:ConsoleWindows

作用:Console接口在Windows下的实现

package fulton.util;

import fulton.util.Console;

/**

* Created by Fulton's PC on 2015/12/7.

*/

public class ConsoleWindows implements Console {

static{

//载入动态库ConsoleWindows.dll

System.loadLibrary("ConsoleWindows");

}

public ConsoleWindows()

{

initUse();

}

protected void finalize()

{

finishUse();

}

//调用初始化

public native void initUse();

//调用结束

public native void finishUse();

@Override

public native void setConsoleCursorPosition(int x, int y) ;

@Override

public native void setConsoleCursorOffset(int offx, int offy) ;

@Override

public native Pair getConsoleCursorPosition();

@Override

public String getConsoleType() {

return "Windows";

}

@Override

public native void resizeConsoleWindowSize(int size_x, int size_y);

@Override

public native Pair getConsoleWindowSize() ;

@Override

public native void hideConsoleCursor();

@Override

public native void showConsoleCursor() ;

@Override

public native void clearConsoleWindows();

}

拓展分析

==

文件:cpp/ConsoleWindows.h

来源:由javah程序依据ConsoleWindows中的native声明生成

实现:cpp/ConsoleWindows.app

#pragma once

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

#include

/* Header for class fulton_util_ConsoleWindows */

#ifndef _Included_fulton_util_ConsoleWindows

#define _Included_fulton_util_ConsoleWindows

#ifdef __cplusplus

extern "C" {

#endif

/*

* Class: fulton_util_ConsoleWindows

* Method: initUse

* Signature: ()V

*/

JNIEXPORT void JNICALL Java_fulton_util_ConsoleWindows_initUse

(JNIEnv *, jobject);

/*

* Class: fulton_util_ConsoleWindows

* Method: finishUse

* Signature: ()V

*/

JNIEXPORT void JNICALL Java_fulton_util_ConsoleWindows_finishUse

(JNIEnv *, jobject);

/*

* Class: fulton_util_ConsoleWindows

* Method: setConsoleCursorPosition

* Signature: (II)V

*/

JNIEXPORT void JNICALL Java_fulton_util_ConsoleWindows_setConsoleCursorPosition

(JNIEnv *, jobject, jint, jint);

/*

* Class: fulton_util_ConsoleWindows

* Method: setConsoleCursorOffset

* Signature: (II)V

*/

JNIEXPORT void JNICALL Java_fulton_util_ConsoleWindows_setConsoleCursorOffset

(JNIEnv *, jobject, jint, jint);

/*

* Class: fulton_util_ConsoleWindows

* Method: getConsoleCursorPosition

* Signature: ()Lfulton/util/Pair;

*/

JNIEXPORT jobject JNICALL Java_fulton_util_ConsoleWindows_getConsoleCursorPosition

(JNIEnv *, jobject);

/*

* Class: fulton_util_ConsoleWindows

* Method: resizeConsoleWindowSize

* Signature: (II)V

*/

JNIEXPORT void JNICALL Java_fulton_util_ConsoleWindows_resizeConsoleWindowSize

(JNIEnv *, jobject, jint, jint);

/*

* Class: fulton_util_ConsoleWindows

* Method: getConsoleWindowSize

* Signature: ()Lfulton/util/Pair;

*/

JNIEXPORT jobject JNICALL Java_fulton_util_ConsoleWindows_getConsoleWindowSize

(JNIEnv *, jobject);

/*

* Class: fulton_util_ConsoleWindows

* Method: hideConsoleCursor

* Signature: ()V

*/

JNIEXPORT void JNICALL Java_fulton_util_ConsoleWindows_hideConsoleCursor

(JNIEnv *, jobject);

/*

* Class: fulton_util_ConsoleWindows

* Method: showConsoleCursor

* Signature: ()V

*/

JNIEXPORT void JNICALL Java_fulton_util_ConsoleWindows_showConsoleCursor

(JNIEnv *, jobject);

/*

* Class: fulton_util_ConsoleWindows

* Method: clearConsoleWindows

* Signature: ()V

*/

JNIEXPORT void JNICALL Java_fulton_util_ConsoleWindows_clearConsoleWindows

(JNIEnv *, jobject);

#ifdef __cplusplus

}

#endif

#endif

c4droid编译java_Windows下的java控制台已经完成,Linux相信很简单了相关推荐

  1. 非IT专业应届毕业生的第一次面试,某乙方公司,JAVA开发岗位,问题很简单,在这里总结下。

    流程 1.自我介绍 2.讲讲自己擅长的语言或技术(由于我没有,我就跳过了这一部分) 3.再然后就问了我几个问题 4.提出自己想要了解的问题. 其他不说了,就总结下问题吧. 问题 1.面向对象的语言得三 ...

  2. linux下查看java进程日志,linux 下查看java进程

    Maven(二)使用eclipse创建maven多模块项目 maven作为一种自动化构建工具,在现在的企业应用开发中运用非常普遍. 企业项目一般都比较大,多采用maven管理的多模块项目,下面直接上创 ...

  3. Java封装详解,很简单

    大家好,今天来给大家分享一下Java封装 面向对象有三大特征: 1.封装 2.继承 3. 多态 我们来讲Java封装,它也是Java面向对象的三大特征之一 封装 ,大白话的解释就是,把一个东西,装到箱 ...

  4. linux下的删除文件命令,Linux下删除文件命令

    在linux中删除文件与文件夹我们可以直接使用rm就可以删除了,彻底删除文件或文件夹我们可以使用shred命令来完成,接下来是小编为大家收集的Linux下删除文件命令,希望能帮到大家. Linux下删 ...

  5. linux下剪切文件怎么恢复,linux下文件夹的创建、复制、剪切、重命名、清空和删除命令...

    在home目录下有wwwroot目录,wwwroot下有sinozzz目录,即/home/wwwroot/sinozzz 一.目录创建 在/home/wwwroot目录下新建一个sinozzz123的 ...

  6. 解决命令行下java编译javac不成功java和java -version可以成功的三种解决方案

    最近在cmd命令行下javac编译java文件不成功,但是输入java和java -version没问题 在CSDN看了一下午各路大神的回答,自己总结一下三个解决方法: 1.如果cmd下输入java或 ...

  7. jmeter找不到java_Windows下Jmeter安装出现Not able to find Java executable or version问题解决方案...

    最近在做一个开放接口平台性能测试  , 指标是最少达到1000/s的并发 , 接口鉴权 百万级的表  在1s内完成.. 在众多压测工具中 ,,选择了Apache的jmeter ,于官网下载了最新版本 ...

  8. java调用clang编译的so_写Java这么久,JDK源码编译过没?编译JDK源码踩坑纪实

    好奇害死羊 很多小伙伴们做Java开发,天天写Java代码,肯定离不开Java基础环境:JDK,毕竟我们写好的Java代码也是跑在JVM虚拟机上. 一般来说,我们学Java之前,第一步就是安装JDK环 ...

  9. aix系统java堆_浅谈AIX环境下的Java性能调优

    1.什么是Java Java 是一种面向对象的编程语言.它以 C++ 为模型,被设计成小的.简单的.在源和二进制级别跨平台的可移植的语言,Java 程序(applets 和应用程序)可以运行于任何已经 ...

最新文章

  1. 一个容易忽略的问题—Javascript文件加载的顺序
  2. 2018年阿里云NoSQL数据库大事盘点
  3. Android 图片混排富文本编辑器控件
  4. uniapp苹果底部栏自适应配置
  5. linux 配置路由时via,详解Linux系统中配置静态路由的方法
  6. iOS 指令集架构Architectures armv6、armv7、armv7s、arm64、arm64e、x86_64、i386
  7. idea常用图标总结
  8. 2021-视频监控中的多目标跟踪综述
  9. 电脑消除,彻底清除电脑垃圾,让电脑运行更流畅!
  10. SQL 配置管理器找不到了
  11. 工具推荐:最好用的pCap工具
  12. aria2 网页版服务器错误,aria2服务器错误
  13. unbuntu 安装nginx
  14. 搞笑git 程序员改bug_这些神奇又搞笑的bug,真的让程序员万万没想到!
  15. Unity3D 获取资源运行时内存和硬盘大小
  16. android-刷机-filezilla-不要跟着做
  17. 真实评测 i51155g7和锐龙r75700u选哪个好
  18. Game 迷城的国度 Next(类似暗黑的游戏)
  19. Warframe漫谈:Ballas
  20. mysql5.1 emoji_技术|如何在 MySQL 中存储 emoji ?

热门文章

  1. android 系统的切图方式_android APPUI设计、切图的常用尺寸大全
  2. 当当吃海货,不算不会过
  3. 企业邮箱服务器搭建,如何搭建企业邮箱服务器
  4. RSS订阅(含转载内容)
  5. Type接口的基础知识
  6. 怎样提高解决问题的能力
  7. 柯西导数与鲁宾逊导数之比较
  8. 我在IT职场超15年:从程序员做到副总,送你21个超实用的职场法则!
  9. Unity2D 官方骨骼动画Anima2D使用方法
  10. 目前计算机科学领域的前沿,计算机科学前沿热点及发展趋势