Чи існує якась інтерактивна консоль, схожа на Python, для Java?


76

Нещодавно я витратив багато часу на програмування на Java, і одне, що мені не вистачає в мовах сценаріїв, - це можливість тестувати їх у консолі.

Щоб швидко протестувати програму Java, я повинен відредагувати файл, а потім перетворити його на байт-код і виконати. Навіть використовуючи IDE, він втрачає задоволення після 372-го разу.

Я хотів би знати, чи є там продукт, який має щось на зразок інтерактивної консолі (впевнений, вам потрібен компілятор JIT) і деяке автозаповнення (з релексивністю, я гадаю, це можливо).

Можливо, це щось дуже поширене, про що я просто не знаю, або щось абсолютно неможливе, але найгірше запитання :-)

Відповіді:


54

Так; jshell , а до цього деякими близькими наближеннями є Groovy , Clojure , Scala та Bean Shell .


1
Домовились. Я використовую BeanShell через JDE в emacs; це далеко не ідеально, але він забезпечує інтерактивну консоль та пристойну підтримку завершення як на консолі, так і під час редагування ваших звичайних файлів Java.
Джуліан Сквайрс,

Дійсно, це дуже примітивно, але набагато краще, ніж ніщо. Дякую вам і дякую хлопцям, які його закодували :-)
e-satisfa

3
Також Scala з плагіном Eclipse IDE має інтерактивну консоль для виконання стилю REPL. Див. Scala-ide.org
Хенді Іраван

@JulianSquires: чи є десь крок за кроком?
serv-inc

Я не використовував цю програму BeanShell багато років. Я б почав з emacswiki.org/emacs/JavaDevelopmentEnvironment, якби намагався налаштувати його знову.
Джуліан Сквайрс

13

Як не дивно, ви отримуєте інтерактивну консоль з Jython ! Ви не отримуєте набагато більше подібних до Python.


трохи синтетичний, але саме цю відповідь я віддаю перевагу!
mariotomo




5

Підхід, який я використовував до певної міри успіху, - це налагодження в Eclipse та використання режиму відображення. Вигляд дисплея дає вам можливість маніпулювати кодом, який зараз працює в JVM, виконуючи оператори Java. Будь-який об’єкт, доступний у конкретній точці розриву, на якій ви зупинені, знаходиться в межах видимості дисплея. Хоча це не зовсім те, що ви шукаєте, воно надає деякі функції, які REPL надає для інших середовищ програмування. Для отримання додаткової інформації див. Розділ Налагодження за допомогою платформи Eclipse .


Я все ще віддаю перевагу плагіну Scala IDE Eclipse, однак, коли не бажано встановлювати плагін, підхід налагодження є найближчим до інтерпретатора REPL, що є вбудованою "функцією" в Eclipse JDT. :)
Hendy Irawan,

Як відобразити значення виразу з цього вікна відображення? Наприклад, якщо я пишу щось на зразок: String s = "Hello World", s1 = s.substring (3, 5); як дізнатися значення s1? Я не можу знайти шлях
zakmck

Ви можете виділити, s1а потім відкрити контекстне меню. Там є запис із написом, Displayякий буде робити те, що ви хочете.
лаз



2

Ви можете використовувати BeanShell для запуску довільного коду Java. Якщо ви хочете інтеграцію Eclipse, EclipseShell має підтримку BeanShell.


1

У Jgrasp IDE є інтерактивна консоль, де ви можете тестувати, я її багато використовую, і є також налагоджувальний вигляд, що показує мінливу мітку тощо після того, як ви їх оголосите.

Це opensoruce, і ви можете отримати копію на http://www.jgrasp.org/

// Андерс


Я озирнувся навколо JGrasp, але не зміг знайти інтерактивну консоль
Casebash

0

Я часом стикаюся з тією ж проблемою і маю часткове рішення. Я тримаю в своєму розпорядженні файл (як сказав Чарлі Мартін, Java потребує своїх контекстів класу), який є трохи більше, ніж тестова програма. У другому вікні - консолі - у мене є сценарій, який я запускаю, який просто перевіряє час модифікації вихідного файлу кожні секунду або дві. Коли він бачить зміну джерела, він повторно компілює його (я зазвичай возиться на C, але я це робив і з Java) і виконує результат.

Це не чудове рішення, але швидке одноразове, і я знайшов його дуже корисним.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.