programing

파이썬의 대화식 REPL 모드와 같은 것이 있지만 Java 용입니까?

nasanasas 2020. 8. 31. 07:54
반응형

파이썬의 대화식 REPL 모드와 같은 것이 있지만 Java 용입니까?


파이썬의 대화식 REPL 모드와 같은 것이 있지만 Java 용입니까? 예를 들어 InetAddress.getAllByName( localHostName )창에 입력 하고 즉시 결과를 얻을 수 있도록이 모든 public static void nightmare () 일없이?


편집 Java 9부터 JShell이 ​​있습니다.

원래 대답은 다음과 같습니다.

Groovy Console을 사용할 수도 있습니다 . 원하는 것을 할 수있는 대화 형 콘솔입니다. Groovy에는 핵심 Java 플랫폼의 클래스도 포함되어 있으므로 이러한 클래스도 사용할 수 있습니다.

다음과 같이 보입니다.

Groovy의 스크린 샷


Eclipse에는 루프가 아니지만이를 수행하는 기능이 있습니다. "스크랩북 페이지"라고합니다. 나는 당신이 작은 코드 조각을 수집하는 스크랩북을 가지고 있다고 비유한다고 가정합니다.

어쨌든, 작동하게하려면 Eclipse에서 프로젝트를여십시오 (스크랩북 페이지는 프로젝트와 연결될 것입니다. Eclipse는 프로젝트가 사물을 소유 할 때 좋아합니다).

그때:

  1. 프로젝트 탐색기 창에서 프로젝트 어딘가에있는 폴더를 선택합니다.
  2. 메뉴 파일-> 새로 만들기-> 기타를 선택하거나 Ctrl-N을 누르십시오.
  3. Java-> Java 실행 / 디버그-> 스크랩북 페이지를 선택하십시오.
  4. "다음"을 누르고 파일 이름을 지정한 다음 "마침"을 누르십시오.

이제 스크랩북 페이지가 있습니다. 다음과 같은 코드를 입력하십시오.

System.out.println(System.getProperties());

그런 다음 마우스로 텍스트를 선택하고 Control-U를 누르거나 컨텍스트 메뉴에서 "실행"을 선택합니다. 코드가 실행되고 출력이 콘솔에 나타납니다.

식을 입력하고 선택한 다음 상황에 맞는 메뉴에서 표시를 선택할 수도 있습니다. 표현식을 평가하고 유형을 인쇄합니다. 예를 들어 Display on 1 + 2실행 하면 (int) 3.


BeanShell은 Java로 작성된 개체 스크립팅 언어 기능을 갖춘 작은 무료 임베드 가능한 Java 소스 인터프리터입니다. BeanShell은 표준 Java 구문을 동적으로 실행하고 느슨한 유형, 명령 및 Perl 및 JavaScript와 같은 메소드 클로저와 같은 일반적인 스크립팅 편의를 통해이를 확장합니다. BeanShell을 Java 실험 및 디버깅을 위해 대화식으로 사용할 수있을뿐만 아니라 새로운 방식으로 애플리케이션을 확장 할 수 있습니다. 스크립팅 Java는 신속한 프로토 타이핑, 사용자 스크립팅 확장, 규칙 엔진, 구성, 테스트, 동적 배포, 임베디드 시스템, 심지어 Java 교육을 포함한 다양한 애플리케이션에 적합합니다.

http://www.beanshell.org/

http://www.beanshell.org/manual/syntax.html#Standard_Java_Syntax


Eclipse 스크랩북 페이지를 사용할 수 있습니다.

Eclipse에서 스크랩북 페이지를 만듭니다. 프로젝트에서 새로 만들기-> 기타-> 스크랩북 페이지.

파일에 텍스트를 입력하고 선택하고 ctrl-U를 누르면됩니다.

가져 오기를 관리하려면 페이지를 마우스 오른쪽 단추로 클릭하고 가져 오기 설정을 선택하십시오. 여기서 패키지 또는 단일 클래스 가져 오기를 선택할 수 있습니다. 이것은 영구적이며 페이지와 함께 저장됩니다.


오래된 질문이지만 더 나은 답이 있습니다 (2013 년 5 월)-java-REPL! github 에서 사용할 수 있으며 빠른 일회성 테스트를 위해 java-repl 웹 사이트 에서 라이브로 사용할 수도 있습니다 .

git 허브 코드를 잡고 실행 ant하여 아티팩트를 생성하면 다음과 같은 작은 스크립트를 사용하여 쉽게 사용할 수 있습니다.

#!/bin/sh
java -jar /home/rdahlgren/scripts/javarepl-dev.build.jar

이 프로젝트를 찾은 후 나는 아마 하루에 5 번 그것을 사용합니다. 즐겨!


아직 아무도 Java (6, 7)가라는 REPL 콘솔을 제공한다고 언급하지 않은 것 같습니다 jrunscript. 언어에 구애받지 않습니다 (따라서 Jython, JRuby 등과 함께 사용할 수 있음). 기본적으로 번들로 제공되는 JavaScript (Rhino)로 기본 설정되어 있으며 다른 언어와 마찬가지로 클래스 경로에서 사용 가능한 모든 패키지 / 객체에 액세스 할 수 있습니다.


Groovy의 대안으로 Beanshell을 사용해보십시오 : http://www.beanshell.org/

Java와 비슷하며 Java 구문을 직접 사용할 수 있습니다.


Jython 은 Java 객체를 검사하고 상호 작용할 수있는 Python 구현입니다.

>>> 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])

OpenJDK 9의 일부입니다!

JDK 9의 일부로 JShell (Oracle에서 개발) 이라는 REPL 이 릴리스되었습니다.

JDK 9를 다운로드하고 bin/jshell.

JShell 스크린 샷

자원


Java-REPL by Albert Latacz works well.

You can try it directly from your browser here: http://www.javarepl.com/term.html

The source code is available here, and it has a decent Intelli-J plugin.

https://github.com/albertlatacz/java-repl


Clojure provides a REPL you can use.


The groovy console allows you to do that. It actually was meant to try and test groovy code, but since groovy is a superset of Java, it allows plain Java stuff as well.

I just entered this into the console:

InetAddress.getAllByName('localhost')

and hit CTRL-R, then it returned:

groovy> InetAddress.getAllByName('localhost')

Result: [localhost/127.0.0.1]

Scala also offers an interactive console. I was able to use it to get a result for the expression in your question by fully qualifying InetAddress, as in:

java.net.InetAddress.getAllByName("localhost")

While JRuby, BeanShell, Julian Fleischer's REPL are there Albert Latacz's REPL seems to be the latest and active.

Tried it with a simple class definition, works fine.

$ 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);

For folks with access to Mathematica, JLink lets you access Java and script with Mathematica code:

Needs["JLink`"]
LoadJavaClass["java.net.InetAddress"]
InetAddress`getAllByName["localhost"]

Hit Shift-Enter to evaluate, and you get

{<<JavaObject[java.net.Inet4Address>>}

Then you can use Mathematica's Map function to call toString on the returned objects:

#@toString[]& /@ %

to get the result (or to use the less obscure syntax, Map[Function[obj, obj@toString[]], %]):

{"localhost/127.0.0.1"}

If you start to get serious with this, you'll want to read Todd Gayley's tutorial at http://reference.wolfram.com/mathematica/JLink/tutorial/Overview.html.


If you already know Groovy (which I assume you do, since you mentioned the Groovy Console), then just use groovysh or groovyConsole, which are included in the Groovy distro. If you have custom jars that you want to import, you can either write a batch file that starts up groovysh/groovyConsole with those added to the classpath. You can also do this

this.class.classLoader.rootLoader.addURL(new URL("file:///path to file"))

from within the shell to load other jars.

I used to use Jython several years ago to do just what you're asking. As part of my build script, I generated a custom jython.bat and .py file that included the full classpath for the project I was working on. That way when I started Jython, it would have all the code available, and it would bring up Spring to let me twiddle things in the live system. You can do the same thing with Groovy, JRuby, BeanShell, etc.


you can script java using jruby http://kenai.com/projects/jruby/pages/CallingJavaFromJRuby


Yes, there is: http://www.scravy.de/blog/2012-02-27/a-read-eval-print-loop-for-java.htm


Most IDE's have a window called something like "immediate mode" that will allow you to evaluate java code on the fly.


You could take a look at BlueJ which is an interactive Java development environment meant for teaching OOP rather than as full IDE like Eclipse or NetBeans. It's kind of fun to have a play with anyway.

You can see it in action on YouTube in a series of Java tutorials.


DrJava is an educational IDE that includes an REPL pane.

There is an Eclipse plugin as well, but it hasn't worked for me. I think it just hasn't been updated in a while. So what I generally do is keep a DrJava window open for the "what happens if I do this" questions.

EclipseShell might be good too, but I haven't used it yet.


Beanshell 2


There is simple IDE called DrJava that has an Interactions console. It works exactly as I would expect. Just load a file and start interacting with the objects in it.


There's an online REPL: http://www.javarepl.com/console.html

Typing more to reach the character limit ...


For java 8, there is nudge4j. see https://github.com/lorenzoongithub/nudge4j

nudge4j 자바 repl

... and the beauty is that you can pilot your application from the browsert


JPad is a java scratchpad with a builtin 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>

It is also smart about dumping collections, lists, maps etc and allows rendering them as a table or chart:

여기에 이미지 설명 입력


Java 9 is providing the JShell.

jshell> println( "Print me!")
jshell> Print me!

Jython, JIRB for JRuby, Groovy (groovyconsole et al) and Beanshell are all viable options.

저는 InteractiveConsoleJython에를 사용했는데 앱에서 정말 잘 작동했습니다.

참고 URL : https://stackoverflow.com/questions/397488/is-there-something-like-pythons-interactive-repl-mode-but-for-java

반응형