Java 9 представляет REPL под названием JShell внутри дистрибутива JDK. Есть ли способ подключиться к JShell JDK, который запускает какое-то приложение и выполняет команды, ссылающиеся на это приложение. Например, выполнение некоторых методов формирует код приложения, проверяет объекты и т. Д.?Java 9 REPL для запуска приложения
ответ
JShell не является стандартной командой java, это еще одна команда. Когда вы открываете оболочку, она «идет» в Read Read Eval Print Loop. После ввода команды она считывается и анализируется оболочкой, вычисляется и результат печатается.
Вы можете определить переменные и добавить классы в путь к классам, но я не думаю, что можно запустить приложение или сервер оттуда, по крайней мере, на этом этапе, а не в том же JVM. Поскольку вы можете добавлять классы, вы можете их создать, но у вас нет возможности проверить их переменные. Однако вы можете увидеть переменные, которые вы создаете в своей области JShell (какие объекты вы создали, вы можете получить доступ и распечатать только свои общедоступные методы и переменные).
Кажется, что у JShell будет api, что открывает путь для других возможностей.
Нет, не легко с jshell.
, но позвольте мне перефразировать ваш вопрос так, что мы не используем jshell но независимо РЕПЛ Java инструмент:
Есть ли способ подключить некоторый РЕПЛ Java инструмент против запущенного приложения Java и выполнять команды, ссылающийся на этот ход приложение. Например, выполнение некоторых методов формирует код приложения, проверяет объекты и т. Д.?
https://github.com/lorenzoongithub/nudge4j
, то вы должны взглянуть на nudge4j это позволяет точно, что
единственный нюанс для Java 8.
Альтернативный вариант, что вы могли бы рассмотреть что-то вроде BeanShell (хотя BeanShell довольно старый и, вероятно, не рекомендуется). Вы можете запустить консоль BeanShell из своего приложения, которое позволит вам получить доступ к вашим объектам и вызвать методы на них. См. Пример JConsole для некоторых идей.
- 1. Прикрепите клоюре/scala repl для запуска JVM
- 2. Rascal доступа к REPL из java-приложения
- 3. Получение Clojure для запуска (lein repl)
- 4. Ярлыка для запуска REPL если не REPL работает и отправить Repl
- 5. простая java repl для mac
- 6. Служба приложения консоли REPL
- 7. Как заставить неподписанные приложения Java для запуска
- 8. MySQL Trigger для запуска Java-приложения
- 9. Программное добавление приложения Java для запуска
- 10. tiny exe для запуска приложения java
- 11. Помощи для запуска Java-приложения на Linux
- 12. Mutiple версия Java для запуска приложения
- 13. Профиль запуска java веб-приложения
- 14. Запустите REPL из моего приложения
- 15. Добавление Java REPL build.gradle
- 16. Настройки iOS 9.x после 1-го запуска разрабатываемого приложения
- 17. Должен ли Java быть установлен для запуска приложения Java?
- 18. Приложения для запуска JavaScript
- 19. Запуск приложения Java GUI на Cloud 9
- 20. Почему нет режима Repl для Java
- 21. REPL для Capybara
- 22. Получение приложения RCP для запуска
- 23. FIREMONKEY - запуск запуска для запуска приложения (OSX)
- 24. Каковы шаги для запуска приложения для Java-приложений
- 25. Переадресация портов для приложения Java для запуска в качестве сервера
- 26. Изменить запрос REPL из REPL
- 27. Запуск сценария для scala REPL
- 28. Scala REPL Ошибка запуска «файл класса не работает»
- 29. Клавиша быстрого запуска Eclipse для веб-приложения запуска/отладки приложения
- 30. Строительство модульной Java приложения ориентированные как Java 9 и старше
Возможно ли это сделать в других REPL? –
Нет, это не цель JShell. Цель состоит в том, чтобы позволить вам эвакуировать Java-заявления быстрым манером. JShell предоставит окружающий контекст, чтобы помочь вам сэкономить время, вы не можете сказать ему, что он принимает приложение как ваш окружающий контекст. –
@bigdestroyer есть ракета крушения, которая предоставляет некоторые из того, что я упомянул http://www.crashub.org/ –