c4droid编译java_Windows下的java控制台已经完成,Linux相信很简单了
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
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相信很简单了相关推荐
- 非IT专业应届毕业生的第一次面试,某乙方公司,JAVA开发岗位,问题很简单,在这里总结下。
流程 1.自我介绍 2.讲讲自己擅长的语言或技术(由于我没有,我就跳过了这一部分) 3.再然后就问了我几个问题 4.提出自己想要了解的问题. 其他不说了,就总结下问题吧. 问题 1.面向对象的语言得三 ...
- linux下查看java进程日志,linux 下查看java进程
Maven(二)使用eclipse创建maven多模块项目 maven作为一种自动化构建工具,在现在的企业应用开发中运用非常普遍. 企业项目一般都比较大,多采用maven管理的多模块项目,下面直接上创 ...
- Java封装详解,很简单
大家好,今天来给大家分享一下Java封装 面向对象有三大特征: 1.封装 2.继承 3. 多态 我们来讲Java封装,它也是Java面向对象的三大特征之一 封装 ,大白话的解释就是,把一个东西,装到箱 ...
- linux下的删除文件命令,Linux下删除文件命令
在linux中删除文件与文件夹我们可以直接使用rm就可以删除了,彻底删除文件或文件夹我们可以使用shred命令来完成,接下来是小编为大家收集的Linux下删除文件命令,希望能帮到大家. Linux下删 ...
- linux下剪切文件怎么恢复,linux下文件夹的创建、复制、剪切、重命名、清空和删除命令...
在home目录下有wwwroot目录,wwwroot下有sinozzz目录,即/home/wwwroot/sinozzz 一.目录创建 在/home/wwwroot目录下新建一个sinozzz123的 ...
- 解决命令行下java编译javac不成功java和java -version可以成功的三种解决方案
最近在cmd命令行下javac编译java文件不成功,但是输入java和java -version没问题 在CSDN看了一下午各路大神的回答,自己总结一下三个解决方法: 1.如果cmd下输入java或 ...
- jmeter找不到java_Windows下Jmeter安装出现Not able to find Java executable or version问题解决方案...
最近在做一个开放接口平台性能测试 , 指标是最少达到1000/s的并发 , 接口鉴权 百万级的表 在1s内完成.. 在众多压测工具中 ,,选择了Apache的jmeter ,于官网下载了最新版本 ...
- java调用clang编译的so_写Java这么久,JDK源码编译过没?编译JDK源码踩坑纪实
好奇害死羊 很多小伙伴们做Java开发,天天写Java代码,肯定离不开Java基础环境:JDK,毕竟我们写好的Java代码也是跑在JVM虚拟机上. 一般来说,我们学Java之前,第一步就是安装JDK环 ...
- aix系统java堆_浅谈AIX环境下的Java性能调优
1.什么是Java Java 是一种面向对象的编程语言.它以 C++ 为模型,被设计成小的.简单的.在源和二进制级别跨平台的可移植的语言,Java 程序(applets 和应用程序)可以运行于任何已经 ...
最新文章
- 一个容易忽略的问题—Javascript文件加载的顺序
- 2018年阿里云NoSQL数据库大事盘点
- Android 图片混排富文本编辑器控件
- uniapp苹果底部栏自适应配置
- linux 配置路由时via,详解Linux系统中配置静态路由的方法
- iOS 指令集架构Architectures armv6、armv7、armv7s、arm64、arm64e、x86_64、i386
- idea常用图标总结
- 2021-视频监控中的多目标跟踪综述
- 电脑消除,彻底清除电脑垃圾,让电脑运行更流畅!
- SQL 配置管理器找不到了
- 工具推荐:最好用的pCap工具
- aria2 网页版服务器错误,aria2服务器错误
- unbuntu 安装nginx
- 搞笑git 程序员改bug_这些神奇又搞笑的bug,真的让程序员万万没想到!
- Unity3D 获取资源运行时内存和硬盘大小
- android-刷机-filezilla-不要跟着做
- 真实评测 i51155g7和锐龙r75700u选哪个好
- Game 迷城的国度 Next(类似暗黑的游戏)
- Warframe漫谈:Ballas
- mysql5.1 emoji_技术|如何在 MySQL 中存储 emoji ?