Есть ли что-то вроде интерактивного режима REPL в Python, но для Java? Так что я могу, например, ввести InetAddress.getAllByName( localHostName )
в окно и сразу же получить результаты, без всей этой публичной статической пустоты nightmare ()?
java
read-eval-print-loop
Йони Ройт
источник
источник
Ответы:
edit Начиная с Java 9 есть JShell
Оригинальный ответ следует
Вы также можете использовать Groovy Console . Это интерактивная консоль, где вы можете делать то, что хотите. Поскольку Groovy также включает классы из базовой платформы Java, вы также сможете использовать эти классы.
Выглядит это так:
источник
System.exit()
), но для большинства целей этого должно быть достаточно.class test{public static void test(){System.out.println('test')}}
В Eclipse есть функция для этого, хотя это не цикл. Это называется «Страница альбома для вырезок». Я предполагаю, что аналогия должна заключаться в том, что у вас есть альбом для вырезок, в котором вы собираете небольшие фрагменты кода.
В любом случае, чтобы он заработал, откройте проект в Eclipse (ваша страница Scrapbook будет связана с проектом - Eclipse нравится, когда проекты принадлежат объектам).
Затем:
Теперь у вас есть страница альбома для вырезок. Введите код, например, такой:
System.out.println(System.getProperties());
Затем выделите текст мышью и либо нажмите Control-U, либо выберите «Выполнить» в контекстном меню. Код будет запущен, и результат появится на консоли.
Вы также можете ввести выражение, выбрать его и выбрать «Показать» в контекстном меню. Он оценит выражение и напечатает его тип. Например, при запуске Display on
1 + 2
будет печататься(int) 3
.источник
http://www.beanshell.org/
http://www.beanshell.org/manual/syntax.html#Standard_Java_Syntax
источник
Вы можете использовать страницы Eclipse Scrapbook.
В Eclipse создайте страницу альбома для вырезок. В вашем проекте, New-> Other-> Scrapbook page.
В файле введите текст, выберите его и нажмите ctrl-U, и готово.
Чтобы управлять импортом, щелкните страницу правой кнопкой мыши и выберите «Установить импорт», где вы можете выбрать импорт пакета или отдельного класса. Это постоянно и сохраняется вместе со страницей.
источник
Старый вопрос, но теперь есть лучший ответ (май 2013 г.) - java-REPL! Он доступен на github, а также доступен в реальном времени на веб-сайте java-repl для быстрого одноразового тестирования.
Если вы возьмете код концентратора git и запустите его
ant
для генерации артефактов, вы можете упростить его использование с помощью небольшого скрипта, например:С тех пор как нашел этот проект, я, наверное, использую его 5 раз в день. Наслаждайтесь!
источник
Кажется, никто еще не упомянул, что Java (6, 7) поставляет консоль REPL с именем
jrunscript
. Он не зависит от языка (поэтому может использоваться с Jython, JRuby и т. Д.). По умолчанию используется JavaScript (Rhino), который также включен по умолчанию, и, как и в других языках, вы можете получить доступ ко всем пакетам / объектам, доступным в пути к классам.источник
Это часть OpenJDK 9!
REPL под названием JShell (разработанный Oracle) был выпущен как часть JDK 9.
Просто скачайте JDK 9 и запустите
bin/jshell
.Ресурсы
источник
В качестве альтернативы Groovy попробуйте Beanshell: http://www.beanshell.org/
Он больше похож на Java и позволяет напрямую использовать синтаксис Java.
источник
Jython - это реализация Python, которая позволяет вам проверять объекты Java и взаимодействовать с ними.
>>> from java.net import * >>> InetAddress.getAllByName("google.com") array(java.net.InetAddress,[google.com/209.85.171.100, google.com/74.125.45.100, google.com/74.125.67.100])
источник
Java-REPL Альберта Латача работает хорошо.
Вы можете попробовать это прямо в браузере здесь: http://www.javarepl.com/term.html
Исходный код доступен здесь, и у него есть достойный плагин Intelli-J.
https://github.com/albertlatacz/java-repl
источник
Clojure предоставляет REPL, который вы можете использовать.
источник
Консоль заводной позволяет сделать это. На самом деле он был предназначен для того, чтобы попробовать и протестировать отличный код, но, поскольку groovy является надмножеством Java, он также позволяет использовать простые Java-материалы.
Я просто ввел это в консоль:
InetAddress.getAllByName('localhost')
и нажмите CTRL-R, затем он вернется:
groovy> InetAddress.getAllByName('localhost') Result: [localhost/127.0.0.1]
источник
Scala также предлагает интерактивную консоль. Я смог использовать его, чтобы получить результат для выражения в вашем вопросе, полностью определив InetAddress, как в:
java.net.InetAddress.getAllByName("localhost")
источник
В то время как JRuby , BeanShell , Джулиан Флейшер в РЕПЛ есть РЕПЛ Альберт Latacz по - видимому, последние и активные.
Пробовал с простым определением класса, отлично работает.
$ java -jar javarepl.jar Welcome to JavaREPL version 56 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_17) Type in expression to evaluate. Type :help for more options. java> public class Test { | public static void execute(String [] s) { | System.out.println(54353 + s[0]); | }} java> Test.execute(new String [] {"234343"}); 54353234343 java> System.exit(0);
источник
Для людей, имеющих доступ к Mathematica, JLink позволяет получить доступ к Java и скриптам с кодом Mathematica:
Needs["JLink`"] LoadJavaClass["java.net.InetAddress"] InetAddress`getAllByName["localhost"]
Нажмите Shift-Enter, чтобы оценить, и вы получите
Затем вы можете использовать функцию Map в системе Mathematica для вызова
toString
возвращаемых объектов:#@toString[]& /@ %
чтобы получить результат (или использовать менее неясный синтаксис
Map[Function[obj, obj@toString[]], %]
):{"localhost/127.0.0.1"}
Если вы начнете серьезно относиться к этому, вы захотите прочитать учебник Тодда Гейли по адресу http://reference.wolfram.com/mathematica/JLink/tutorial/Overview.html .
источник
Если вы уже знаете Groovy (что, я полагаю, вы знаете, поскольку вы упомянули Groovy Console), просто используйте groovysh или groovyConsole, которые включены в дистрибутив Groovy. Если у вас есть собственные jar-файлы, которые вы хотите импортировать, вы можете написать пакетный файл, который запускает groovysh / groovyConsole с теми, которые добавлены в путь к классам. Вы также можете сделать это
this.class.classLoader.rootLoader.addURL(new URL("file:///path to file"))
изнутри оболочки, чтобы загрузить другие банки.
Несколько лет назад я использовал Jython, чтобы делать то, о чем вы просите. В рамках своего сценария сборки я создал пользовательские файлы jython.bat и .py, которые включали полный путь к классам для проекта, над которым я работал. Таким образом, когда я запустил Jython, у него был бы весь доступный код, и он запускал бы Spring, чтобы я мог вертеться в реальной системе. Вы можете сделать то же самое с Groovy, JRuby, BeanShell и т. Д.
источник
вы можете создать скрипт Java, используя jruby http://kenai.com/projects/jruby/pages/CallingJavaFromJRuby
источник
Да, есть: http://www.scravy.de/blog/2012-02-27/a-read-eval-print-loop-for-java.htm
источник
В большинстве IDE есть окно, называемое чем-то вроде «немедленный режим», которое позволяет вам оценивать Java-код на лету.
источник
Вы можете взглянуть на BlueJ , интерактивную среду разработки Java, предназначенную для обучения ООП, а не на полноценную среду IDE, такую как Eclipse или NetBeans. В любом случае это довольно забавно.
Вы можете увидеть это в действии на YouTube в серии руководств по Java.
источник
DrJava - это образовательная IDE, которая включает панель REPL.
Также есть плагин Eclipse, но он у меня не сработал. Я думаю, что его просто не обновляли какое-то время. Итак, что я обычно делаю, так это оставляю окно DrJava открытым для вопросов «что произойдет, если я сделаю это».
EclipseShell тоже может подойти, но я еще не использовал его.
источник
Биншелл 2
источник
Существует простая среда IDE DrJava с консолью взаимодействия. Это работает именно так, как я ожидал. Просто загрузите файл и начните взаимодействовать с находящимися в нем объектами.
источник
Есть онлайн-REPL: http://www.javarepl.com/console.html
Печатать больше, чтобы достичь максимального количества символов ...
источник
Для java 8 есть nudge4j. см. https://github.com/lorenzoongithub/nudge4j
... и прелесть в том, что вы можете пилотировать свое приложение из браузера
источник
JPad - это блокнот на Java со встроенным REPL:
C:\>jpad _ _____ _ | | __ \ | | | | |__) |_ _ __| | _ | | ___/ _` |/ _` | | |__| | | | (_| | (_| | \____/|_| \__,_|\__,_| Anything you type is evaluated as java. The code is continuously appended until you call \clear. Other Available Commands: \exit - exit \clear (n) - clear past java statements \history - display all past java statements \help - display this help j>2+2 4 j>Math.sin(100.1) -0.4177477 j>
Он также умеет сбрасывать коллекции, списки, карты и т. Д. И позволяет отображать их в виде таблицы или диаграммы:
источник
Java 9 предоставляет JShell.
jshell> println( "Print me!") jshell> Print me!
источник
Jython, JIRB для JRuby, Groovy (groovyconsole и др.) И Beanshell - все это жизнеспособные варианты.
Я использовал
InteractiveConsole
для Jython, он действительно отлично работал в приложении.источник