`
sswh
  • 浏览: 165785 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

jline 在Eclipse下的运行问题

 
阅读更多

最近用到karaf,而karaf的控制台使用了jline处理控制台输入。

在Eclipse下运行时,控制台无法接受输入,输入命令、回车,系统没反应。

 

原因是在通过JNI调用本地WindowsAPI时,本地的private static final native int ReadConsoleInputW()方法返回了非预期的值。导致控制台读取部分实际上处于死循环状态。

 

解决方法:设置系统属性jline.WindowsTerminal.directConsole为false。

(绕过本地库Windows API调用,直接使用Java IO流读取输入)

主要参考了:http://whitesock.iteye.com/blog/692816

 

打开jline的日志:设置系统属性jline.internal.Log.debug为true

另外,要调试jline的话,几个依赖库:

<dependency>

<groupId>org.fusesource.hawtjni</groupId>

<artifactId>hawtjni-runtime</artifactId>

<version>1.11</version>

</dependency>

<dependency>

<groupId>org.fusesource.jansi</groupId>

<artifactId>jansi-native</artifactId>

<version>1.5</version>

</dependency>

<dependency>

<groupId>jline</groupId>

<artifactId>jline</artifactId>

<version>2.13</version>

</dependency>

 

调试代码:

public static void main(String[] args) throws Exception {

System.setProperty("jline.internal.Log.debug", "true");

//System.setProperty("jline.WindowsTerminal.directConsole", "false");

 

ConsoleReader console = new ConsoleReader();

String line = console.readLine();

System.out.println("----" + line);

}

 

 对于karaf shell中包含 more输出方式的命令,more的执行效果仍然有问题。

比如,对于help命令。(按每一个字母都分别输出了---more----)

可以修改etc\shell.init.script文件,修改其:

help = { *:help $args | more } ;  改为:

help = { *:help $args } ;

分享到:
评论

相关推荐

    Java 命令行交互输入库 JLine需要的jar包

    4. **多路复用器(Multiplexer)**:允许多个会话同时在一个控制台窗口中运行,这对于实现多进程或者多线程的命令行应用非常有用。 5. **颜色和格式化**:JLine支持输出彩色和格式化的文本,使命令行界面更加友好。...

    jline-2.12-API文档-中文版.zip

    赠送jar包:jline-2.12.jar; 赠送原API文档:jline-2.12-javadoc.jar; 赠送源代码:jline-2.12-sources.jar; 赠送Maven依赖信息文件:jline-2.12.pom; 包含翻译后的API文档:jline-2.12-javadoc-API文档-中文...

    jline-2.11-API文档-中文版.zip

    赠送jar包:jline-2.11.jar; 赠送原API文档:jline-2.11-javadoc.jar; 赠送源代码:jline-2.11-sources.jar; 赠送Maven依赖信息文件:jline-2.11.pom; 包含翻译后的API文档:jline-2.11-javadoc-API文档-中文...

    jline3, JLine是用于处理控制台输入的Java库.zip

    jline3, JLine是用于处理控制台输入的Java库 描述JLine是用于处理控制台输入的Java库。 it functionality editline和 GNU 类似,但是具有额外的特性,使之与 ZSH行编辑器 par 。 熟悉 readline/editline功能的现代 ...

    jline-2.9.1

    Hadoop2.6.0配合hive1.0.0版本,会报jline错误。原因是Hadoop/share/hadoop/yarn/lib中的jline是0.9版本的,存在问题。 换成jline-2.9.1版本,问题就可以解决了。就可以成功的使用hive了。

    jline-2.12-API文档-中英对照版.zip

    赠送jar包:jline-2.12.jar; 赠送原API文档:jline-2.12-javadoc.jar; 赠送源代码:jline-2.12-sources.jar; 赠送Maven依赖信息文件:jline-2.12.pom; 包含翻译后的API文档:jline-2.12-javadoc-API文档-中文...

    jline-2.11-API文档-中英对照版.zip

    赠送jar包:jline-2.11.jar; 赠送原API文档:jline-2.11-javadoc.jar; 赠送源代码:jline-2.11-sources.jar; 赠送Maven依赖信息文件:jline-2.11.pom; 包含翻译后的API文档:jline-2.11-javadoc-API文档-中文...

    jline-0.9.94.jar

    使用zookeeper需要引入的jar包,有需要的下载使用吧~~

    jline3:JLine是一个用于处理控制台输入的Java库

    JLine JLine是一个用于处理控制台输入的Java库。 它的功能类似于和,但具有使其与同等的附加功能。... 依赖关系是最小的:您可以在不依赖* nix系统的情况下使用JLine,但是为了支持Windows或更高级的用法

    hadoop+hbase报错使用jar文件(jline-2.12.1.jar)

    jline版本低导致hbase启动失败,这里的jar文件完成升级。

    基于jline3注解驱动的Java命令行交互库设计源码

    LICENSE文件明确了项目的开源协议,以确保使用者在遵守相应规定的情况下合法使用。BeanService配置文件则是Spring框架特有的配置文件,用于配置Bean实例的生命周期以及属性等信息。 在具体实现方面,开发者可以通过...

    jline2:杰琳2.x

    文献资料讨论区Maven用法使用以下定义在您的maven项目中使用JLine: &lt;dependency&gt; &lt;groupId&gt;jline&lt;/groupId&gt; &lt;artifactId&gt;jline&lt;/artifactId&gt; &lt;version&gt;2.14.2&lt;/version&gt;&lt;/dependency&gt;建造要求Maven 3+ Java 5+ 签出...

    jline-2.7.jar

    JLine jline/jline/2.7/jline-2.7.jar

    jline-2.13.jar

    JLine jline/jline/2.13/jline-2.13.jar

    jline-2.14.jar

    JLine jline/jline/2.14/jline-2.14.jar

    jline-2.14.1.jar

    JLine jline/jline/2.14.1/jline-2.14.1.jar

    jline-demo-1.0-8.el7.x64-86.rpm.tar.gz

    JLine具有跨平台的特性,可以在Unix/Linux和Windows环境下使用,极大地简化了Java开发者处理命令行界面的复杂度。 在本次提供的文件中,包含了一个名为"jline-demo-1.0-8.el7.x64-86.rpm.tar.gz"的压缩包。这个...

    jline-2.11.jar中文-英文对照文档.zip

    (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以...

Global site tag (gtag.js) - Google Analytics