Односимвольная консоль вводится в java/clojure

Как я могу считать отдельный символ/, ключ от консоли, не имея необходимость совершать нападки Входят? Существует старая запись в базе данных ошибки Sun, утверждая, что она не может быть сделана в чистом Java. Я нашел эти подходы

Я ожидал бы добавлять сингл magic-readkey.jar к моему пути к классу, и записать несколько строк кода, как (def just-hit (com.acme.MagicConsole/read-char)).

7
задан Adam Schmideg 11 July 2010 в 23:24
поделиться

1 ответ

Вот приложение «немедленного эха», использующее JLine, которое будет печатать int s, соответствующие зарегистрированным нажатиям клавиш, структурированное как проект Leiningen :

  1. project.clj :

     (defproject con "1.0.0-SNAPSHOT"
     : description "FIXME: написать"
     : main con.core
     : зависимости [[org.clojure / clojure "1.1.0"]
     [org.clojure / clojure-contrib "1.1.0"]
     [jline "0.9.94"]])
    
  2. src / con / core.clj :

     (ns con.core
     (: импорт jline.Terminal)
     (: gen-class))
    
    (defn -main [& аргументы]
     (пусть [термин (Терминал / getTerminal)]
     (хотя правда
     (println (.readCharacter термин Система / в)))))
    

Рассматриваемая функциональность обеспечивается классом jline.Terminal , который предоставляет статический метод getTerminal , возвращающий экземпляр подкласса, зависящего от платформы, который может использоваться для взаимодействия с терминал. См. Javadoc для получения более подробной информации.

Давайте посмотрим, как выглядит asdf ...

$ java -jar con-1.0.0-SNAPSHOT-standalone.jar 
97
115
100
102

( C-c , конечно, все еще убивает приложение.)

11
ответ дан 6 December 2019 в 12:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: