web-dev-qa-db-ja.com

pythonのインタラクティブなREPLモードですが、Javaのようなものはありますか?

PythonのインタラクティブなREPLモードですが、Javaのようなものはありますか?たとえば、ウィンドウにInetAddress.getAllByName( localHostName )と入力すると、このすべてのpublic static void nightmare()なしですぐに結果を取得できます事?

92
Yoni Roit

editJava 9があるので JShell

元の回答が続きます

Groovy Console を使用することもできます。それはあなたが望むことをすることができるインタラクティブなコンソールです。 GroovyにはコアJavaプラットフォームからのクラスも含まれているため、これらのクラスも使用できます。

次のようになります。

Screenshot of Groovy

63
OscarRyz

Eclipseにはこれを行う機能がありますが、ループではありません。 「スクラップブックページ」と呼ばれます。アナロジーは、コードの小さな断片を収集するスクラップブックを持っているということになっていると思います。

とにかく、それを機能させるために、Eclipseでプロジェクトを開きます(Scrapbookページはプロジェクトに関連付けられます。Eclipseは、プロジェクトが所有しているときに気に入っています)。

次に:

  1. プロジェクトナビゲータウィンドウで、プロジェクトのどこかに存在するフォルダを選択します。
  2. [ファイル]-> [新規]-> [その他]を選択するか、Control-Nを押します。
  3. Java-> Java Run/Debug-> Scrapbook Page。
  4. 「次へ」を押してファイル名を付け、「完了」を押します。

これでスクラップブックのページができました。次のようなコードを入力します。

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

次に、マウスでテキストを選択し、Control-Uを押すか、コンテキストメニューから[実行]を選択します。コードが実行され、出力がコンソールに表示されます。

式を入力して選択し、コンテキストメニューから[表示]を選択することもできます。式を評価し、そのタイプを出力します。たとえば、1 + 2は印刷します(int) 3

52
Logan

BeanShellは、小さく無料の埋め込み可能なJava Javaで記述されたオブジェクトスクリプト言語機能を備えたソースインタープリタです。BeanShellは、動的に標準Java構文を実行し、common PerlやJavaScriptのようなルーズタイプ、コマンド、メソッドクロージャなどのスクリプトの便利さ。Java実験とデバッグ、および新しい方法でアプリケーションを拡張するためにBeanShellを対話的に使用できます。 Javaは、ラピッドプロトタイピング、ユーザースクリプト拡張、ルールエンジン、構成、テスト、動的展開、組み込みシステム、さらにはJava =教育。

http://www.beanshell.org/

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

28
bakkal

Eclipse Scrapbookページを使用できます。

EclipseでScrapbookページを作成します。プロジェクトで、「新規」->「その他」->「スクラップブック」ページ。

ファイルにテキストを入力し、選択してctrl-Uを押してください。

インポートを管理するには、ページを右クリックして[インポートの設定]を選択します。ここで、パッケージまたは単一のクラスのインポートを選択できます。これは永続的であり、ページとともに保存されます。

19
Matthew Farwell

古い質問ですが、より良い答えがあります(2013年5月)-Java-REPL! github で利用できます。また、迅速な1回限りのテストのために Java-repl Webサイト でライブで利用できます。

Gitハブコードを取得し、antを実行してアーティファクトを生成する場合、次のような小さなスクリプトで簡単に使用できます。

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

このプロジェクトを見つけてから、おそらく1日5回使用します。楽しい!

19
Ron Dahlgren

Java(6、7)はjrunscriptと呼ばれるREPLコンソールを出荷します。これは言語に依存しません。 Jython、JRubyなど)。デフォルトでJavaScript(Rhino)もバンドルされており、他の言語と同様に、クラスパスで利用可能なすべてのパッケージ/オブジェクトにアクセスできます。

13
user268396

これはOpenJDK 9の一部です!

REPL calledJShell(Oracleが開発))は、JDK 9の一部としてリリースされました。

JDK 9をダウンロードして、bin/jshell

Screen shot of JShell

資源

11
aioobe

Groovyの代替として、Beanshellを試してください。 http://www.beanshell.org/

Javaに似ており、Java構文を直接使用できます。

11
Tim Jansen

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

Albert Latacz によるJava-REPLはうまく機能します。

次のブラウザから直接試すことができます。 http://www.javarepl.com/term.html

ソースコードはここから入手でき、まともなIntelli-Jプラグインがあります。

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

9

Clojureは、REPLを使用できます。

8
Ande TURNER

Scala は対話型コンソールも提供します。次のように、InetAddressを完全修飾することで、質問の式の結果を取得するために使用できました。

Java.net.InetAddress.getAllByName("localhost")
7
joel.neely

groovy console を使用すると、それを実行できます。実際にはgroovyコードを試してテストすることを目的としていましたが、groovyはJavaのスーパーセットであるため、プレーンJava stuff。

これをコンソールに入力しました。

InetAddress.getAllByName('localhost')

cTRL-Rを押すと、返されます:

groovy> InetAddress.getAllByName('localhost')

Result: [localhost/127.0.0.1]
7
Ole

JRubyBeanShellJulian FleischerのREPL があります Albert LataczのREPL は最新でアクティブなようです。

単純なクラス定義で試してみましたが、うまくいきます。

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

Mathematicaにアクセスできる人は、JLinkを使用してJavaおよびMathematicaコードを使用したスクリプトにアクセスできます。

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

Shiftキーを押しながらEnterキーを押して評価すると、

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

その後、MathematicaのMap関数を使用して、返されたオブジェクトでtoStringを呼び出すことができます:

#@toString[]& /@ %

結果を取得します(または、あいまいさが少ない構文Map[Function[obj, obj@toString[]], %]を使用します):

{"localhost/127.0.0.1"}

これで真剣になり始めたら、Todd Gayleyの http://reference.wolfram.com/mathematica/JLink/tutorial/Overview.html のチュートリアルを読んでください。

3
jfklein
2
scravy
2
rogerdpack

すでにGroovyを知っている場合(Groovy Consoleについて説明したので知っています)、Groovyディストリビューションに含まれているgroovyshまたはgroovyConsoleを使用してください。インポートしたいカスタムjarがある場合、クラスパスに追加されたものでgroovysh/groovyConsoleを起動するバッチファイルを作成できます。これもできます

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

シェル内から他のjarをロードします。

私は、数年前にJythonを使用して、あなたが求めていることをするだけでした。ビルドスクリプトの一部として、作業中のプロジェクトの完全なクラスパスを含むカスタムjython.batおよび.pyファイルを生成しました。そうすれば、Jythonを起動したときにすべてのコードが使用可能になり、Springが起動して、ライブシステムでの処理が可能になります。 Groovy、JRuby、BeanShellなどでも同じことができます。

2
Joey Gibson

Java 9はJShellを提供しています。

jshell> println( "Print me!")
jshell> Print me!
1
Neha Gangwar

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>

また、コレクション、リスト、マップなどをダンプすることも賢明であり、それらをテーブルまたはチャートとしてレンダリングできます。

enter image description here

1
Ryan Hamilton
1
harishtella

Java 8、Nudge4jがあります。 https://github.com/lorenzoongithub/Nudge4j を参照してください。

Nudge4j Java repl

...そしてその美しさは、ブラウザからアプリケーションをパイロットできることです

1
Zo72

単純なIDEと呼ばれる DrJava があります。これはインタラクションコンソールを備えています。期待どおりに機能します。ファイルをロードして、その中のオブジェクトとインタラクションを開始します。

1
dansalmo

BlueJ を見ることができます。これは、Eclipseのような完全なJavaではなく、OOPを教えるためのインタラクティブなIDE開発環境です。またはNetBeans。とにかく一緒に遊ぶのはちょっと楽しいです。

一連のJavaチュートリアルで YouTube の動作を確認できます。

1
Trevor Tippins

ほとんどのIDEには、「即時モード」などのような名前のウィンドウがあり、その場でJavaコードを評価できます。

1
krosenvold

DrJava は、教育的なIDE REPLペインを含む。

Eclipseプラグインもありますが、私にはうまくいきませんでした。しばらく更新されていないと思います。したがって、私が通常行うことは、「これを行うとどうなりますか」という質問に対してDrJavaウィンドウを開いたままにすることです。

EclipseShellも良いかもしれませんが、私はまだ使っていません。

1
johncip

オンラインREPLがあります: http://www.javarepl.com/console.html

文字の制限に達するためにさらに入力すると...

1
Max Heiber

Jython、 [〜#〜] jirb [〜#〜] JRuby、Groovy(groovyconsoleなど)、Beanshellはすべて実行可能なオプションです。

JythonにはInteractiveConsoleを使用しましたが、アプリで本当にうまく機能しました。

0
gpampara