92

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

4

29 に答える 29

64

edit Java 9以降、JShellがあります

元の答えは次のとおりです

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

次のようになります。

Groovy のスクリーンショット

于 2008-12-29T11:04:14.607 に答える
52

ループではありませんが、Eclipse にはこれを行う機能があります。それは「スクラップブックページ」と呼ばれています。コードの小さなスニペットを集めたスクラップブックを持っているようなものだと思います。

とにかく、それを機能させるには、Eclipse でプロジェクトを開きます (Scrapbook ページはプロジェクトに関連付けられます。Eclipse は、プロジェクトが所有するものを好んで使用します)。

それで:

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

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

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

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

式を入力して選択し、コンテキスト メニューから [表示] を選択することもできます。式を評価し、その型を出力します。たとえば、Display on1 + 2を実行すると、 が出力されます(int) 3

于 2009-08-14T17:03:07.573 に答える
28

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

http://www.beanshell.org/

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

于 2010-04-14T08:58:31.560 に答える
19

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

Eclipse で Scrapbook ページを作成します。あなたのプロジェクトでは、New->Other->Scrapbook ページ。

ファイルにテキストを入力し、それを選択して ctrl-U を押すだけです。

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

于 2011-09-06T10:22:51.140 に答える
13

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

于 2012-10-08T22:02:34.277 に答える
12

これは OpenJDK 9 の一部です!

JShell (Oracle が開発)と呼ばれる REPLが JDK 9 の一部としてリリースされました。

JDK 9 をダウンロードして起動するだけbin/jshellです。

JShell のスクリーンショット

資力

于 2015-05-06T07:58:08.353 に答える
11

Groovyの代わりに、Beanshellを試してください:http://www.beanshell.org/

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

于 2008-12-29T12:09:47.410 に答える
11

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])
于 2008-12-29T11:00:13.960 に答える
8

Clojure は、使用できる REPL を提供します。

于 2008-12-29T11:11:19.523 に答える
7

Scalaはインタラクティブなコンソールも提供します。次のように、InetAddress を完全に修飾することで、質問の式の結果を取得するために使用できました。

java.net.InetAddress.getAllByName("localhost")
于 2008-12-29T13:49:34.040 に答える
7

Groovy コンソールを使用すると、それが可能になります。実際には、groovy コードを試してテストすることを目的としていましたが、groovy は Java のスーパーセットであるため、プレーンな Java のものも許可されます。

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

InetAddress.getAllByName('localhost')

CTRL-R を押すと、次のように返されました。

groovy> InetAddress.getAllByName('localhost')

Result: [localhost/127.0.0.1]
于 2008-12-29T11:09:48.387 に答える
6

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);
于 2013-04-12T02:48:30.030 に答える
3

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

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 ) を読むことをお勧めします。

于 2009-03-30T15:36:31.737 に答える
2

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 などでも同じことができます。

于 2010-04-14T13:56:14.100 に答える
2

はい、あります: http://www.scravy.de/blog/2012-02-27/a-read-eval-print-loop-for-java.htm

于 2012-10-08T20:52:14.377 に答える
1

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

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

于 2009-10-23T01:11:10.753 に答える
1

DrJavaは、REPLペインを含む教育用IDEです。

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

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

于 2011-04-29T20:24:45.433 に答える
1

ビーンシェル 2

于 2012-03-01T03:22:04.367 に答える
1

JPad​​ は、組み込みの REPL を備えた Java スクラッチパッドです。

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>

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

ここに画像の説明を入力

于 2016-08-12T08:52:05.607 に答える
1

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

文字数制限に達するまでさらに入力しています...

于 2016-02-05T19:12:11.077 に答える
1

ほとんどの IDE には、Java コードをオンザフライで評価できる「即時モード」などと呼ばれるウィンドウがあります。

于 2008-12-29T10:57:47.693 に答える
0

Jython、 JRuby 用のJIRB、Groovy (groovyconsole など)、および Beanshell はすべて実行可能なオプションです。

私はInteractiveConsoleJython に を使用しましたが、アプリでうまく機能しました。

于 2010-04-14T17:58:55.150 に答える