import jcurses.system.CharColor;
import jcurses.widgets.*;
public class JcursesAppMain {
public static void main(String[] args) throws Exception{
// String url = ClassLoader.getSystemClassLoader().getResource("jcurses/system/Toolkit.class").toString();
// url=url.trim();System.out.println(url);
// if (url.startsWith("jar:file:")) {
// url = url.substring("jar:file:".length(),url.length());
// System.out.println(url);
// System.out.println(url.length());
// System.out.println("/jcurses.jar!/jcurses/system/Toolkit.class".length());
// url = url.substring(0,url.length()-"/jcurses.jar!/jcurses/system/Toolkit.class".length());
// }
// System.out.println(url);
//
Window w = new Window(40, 20, true, "Hello World Window");
DefaultLayoutManager mgr = new DefaultLayoutManager();
mgr.bindToContainer(w.getRootPanel());
mgr.addWidget(
new Label("Hello World! 你好么?", new CharColor(CharColor.WHITE, CharColor.GREEN)),
0, 0, 40, 20,
WidgetsConstants.ALIGNMENT_CENTER,
WidgetsConstants.ALIGNMENT_CENTER);
w.show();
Thread.currentThread().sleep(15000);
w.close(); // reset the native console
}
}
javacurses 功能库 是一个JAVA彩色终端界面组件库,文件个数不多,且支持Windows和UNIX/LINUX系统.
但是本人在使用过程中发现如下问题:
1. 中文支持不好 <--见图>
2. 第二,在jcurses.system.Toolkit.getLibraryPath()这个方法的实现相当的拙劣! 见如下源码:
private static String getLibraryPath() {
String url = ClassLoader.getSystemClassLoader().getResource("jcurses/system/Toolkit.class").toString();
url=url.trim();
if (url.startsWith("jar:file:")) {
url = url.substring("jar:file:".length(),url.length());
url = url.substring(0,url.length()-"/jcurses.jar!/jcurses/system/Toolkit.class".length());
} else if (url.startsWith("file:")) {
url = url.substring("file:".length(),url.length());
url = url.substring(0,url.length()-"/classes/jcurses/system/Toolkit.class".length());
url = new File(url,"lib").getAbsolutePath();
} else {
throw new RuntimeException("couldn't find jcurses library");
}
String [] fileNames = new File(url).list();
boolean found = false;
for (int i=0; i<fileNames.length; i++) {
String name = fileNames[i];
if (name.trim().startsWith("libjcurses")) {
url = new File(url,name).getAbsolutePath();
found = true;
break;
}
}
if (!found) {
throw new RuntimeException("couldn't find jcurses library");
}
return url;
}
在 String [] fileNames = new File(url).list();处有可能引发 空指针异常,如果你改了jcurses.jar 这个jar文件的名称的话. 我因为改了这个jar的名字为jcurses-win.jar来区分是哪个平台的版本,结果就爆出空指针异常.如果不查源代码,根本找不到问题的出处.
原因代码在此:
url = url.substring(0,url.length()-"/jcurses.jar!/jcurses/system/Toolkit.class".length());
写死了的东西!
使用这个库,注意要将libjcurses.dll放到jcurses.jar相同的文件夹下.
3. 这个东西在 Eclipse中运行时并不能显示,因为Eclipse捕获了命令行输出显示
这里是放在Jcreator下测试成功的!
- 大小: 38.1 KB
分享到:
相关推荐
javacv官方最新全量jar包,javacv-platform-1.3.3-bin.zip,由于github国内下载较慢,此文件只作为分流,由于现在csdn没办法设置免费资源了,只能设置最低的2分,望大家见谅!
JavaCV(Java Computer Vision)是一个开源的计算机视觉库,它为Java和Android提供了对各种流行的计算机视觉库的访问,如OpenCV、FFmpeg、Face_recognition等。在本例中,我们关注的是`javacv-platform-1.3-bin.zip`...
Java是一种广泛使用的面向对象的编程语言,以其平台独立性、安全性、健壮性和高性能而闻名。这个"java基础教程----精华版"显然是一份精心整理的资料,旨在帮助初学者快速掌握Java编程的基础知识。下面将详细介绍Java...
JavaReport-V3-Enterprise-Released,第三卷...
- 将`mysql-connector-java-8.0.11.jar`添加到项目的类路径中,可以是IDE的库依赖,或者在命令行运行时通过`-cp`选项指定。 - 使用`Class.forName("com.mysql.cj.jdbc.Driver")`加载驱动。 - 通过`DriverManager....
Java JDK是Java编程语言的核心组件,包含了开发和运行Java程序所需的各种工具和库。 首先,我们要理解JDK的重要性。Java JDK是Java平台标准版(Java SE)的一部分,它包含了Java编译器(javac)、Java运行时环境...
MySQL-connector-java-8.0.28 是MySQL数据库与Java应用程序之间通信的重要组件,它是一个JDBC(Java Database Connectivity)驱动程序,使得Java开发者能够通过编写Java代码来访问和操作MySQL数据库。在这个版本中,...
8. **开发应用**: 使用JDK 8u51,开发者可以编写Java源代码(.java文件),使用javac编译器将其转化为字节码(.class文件),然后通过Java虚拟机(JVM)运行这些字节码,实现程序的执行。 总之,Java JDK 8u51是...
从javacv-platform-1.3.3-bin.zip中抽出来的:javacpp.jar、javacv.jar、javacv-platform.jar、opencv.jar、opencv-android-arm.jar、opencv-android-x86.jar、opencv-linux-armhf.jar 、opencv-linux-ppc64le.jar、...
6. **连接池**:在实际应用中,为了优化性能和资源利用,通常会使用连接池(如C3P0、HikariCP等),这需要在配置连接池时引入`mysql-connector-java-5.1.27.jar`。 7. **版本兼容性**:`5.1.27`版本的驱动适用于...
4. **模板匹配与训练**:为了提高中文字符的识别率,可能使用了特定的中文字符库进行模板匹配。此外,用户还可以通过提供样本数据对OCR引擎进行训练,使其更好地适应特定的字体和书写风格。 5. **语言模型**:在...
MySQL是世界上最受欢迎的关系型数据库管理系统之一,而`mysql-connector-java-5.1.30`是MySQL官方为Java开发者提供的数据库连接驱动包。这个驱动包使得Java应用程序能够与MySQL数据库进行无缝通信,执行SQL查询,...
2. 配置环境:将luajava-1.1.dll添加到系统路径,以便系统能够找到并加载该库。同时,需要在Java类路径(classpath)中加入luajava-1.1.jar,以便Java程序可以访问其内部的类。 3. 编写代码:在Lua脚本中,通过...
java jdk 8u65 for windows x32 截至2015.11.03 最新版JDK For windows x32 sha256: c57d582f18327870dab75bba6b28b6cc367897784af6439252db09945a2c921e md5: 3e49f4f5645449a40da06336dbc10cff 大小:181.24 MB
当Java应用通过JDBC与MySQL交互时,首先会加载`mysql-connector-java-5.1.47.jar`库。然后,应用程序通过调用`Class.forName()`方法加载MySQL的JDBC驱动。接着,`DriverManager.getConnection()`方法被用来创建...
需要注意的是,使用`java-unrar`库时,确保已经正确地将`java-unrar-0.3.jar`添加到项目的类路径中。此外,由于版权原因,这个库仅支持读取RAR文件,而不支持创建新的RAR文件或修改已有RAR文件。 在实际开发中,你...
在使用`java-websocket`库时,开发者首先需要创建一个WebSocket客户端或服务器端的实例。客户端通常会连接到指定的WebSocket服务器,并监听连接状态。服务器端则需要设置监听特定端口,等待客户端的连接请求。一旦...
很棒的毕业设计、课程设计、练手的java项目---仓库商品管理系统(文档+视频+源码) 很棒的毕业设计、课程设计、练手的java项目---仓库商品管理系统(文档+视频+源码) 很棒的毕业设计、课程设计、练手的java项目---仓库...
1. **JDBC驱动程序类型**:MySQL Connector/J是Type 4 JDBC驱动,意味着它是纯Java实现的网络驱动,无需依赖操作系统特定的库。它直接处理网络通信,将SQL语句发送到MySQL服务器并接收返回的结果。 2. **连接配置**...
(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上直接地使用它,...