PythonのインタラクティブなREPLモードですが、Javaのようなものはありますか?たとえば、ウィンドウにInetAddress.getAllByName( localHostName )
と入力すると、このすべてのpublic static void nightmare()なしですぐに結果を取得できます事?
editJava 9があるので JShell
元の回答が続きます
Groovy Console を使用することもできます。それはあなたが望むことをすることができるインタラクティブなコンソールです。 GroovyにはコアJavaプラットフォームからのクラスも含まれているため、これらのクラスも使用できます。
次のようになります。
Eclipseにはこれを行う機能がありますが、ループではありません。 「スクラップブックページ」と呼ばれます。アナロジーは、コードの小さな断片を収集するスクラップブックを持っているということになっていると思います。
とにかく、それを機能させるために、Eclipseでプロジェクトを開きます(Scrapbookページはプロジェクトに関連付けられます。Eclipseは、プロジェクトが所有しているときに気に入っています)。
次に:
これでスクラップブックのページができました。次のようなコードを入力します。
System.out.println(System.getProperties());
次に、マウスでテキストを選択し、Control-Uを押すか、コンテキストメニューから[実行]を選択します。コードが実行され、出力がコンソールに表示されます。
式を入力して選択し、コンテキストメニューから[表示]を選択することもできます。式を評価し、そのタイプを出力します。たとえば、1 + 2
は印刷します(int) 3
。
BeanShellは、小さく無料の埋め込み可能なJava Javaで記述されたオブジェクトスクリプト言語機能を備えたソースインタープリタです。BeanShellは、動的に標準Java構文を実行し、common PerlやJavaScriptのようなルーズタイプ、コマンド、メソッドクロージャなどのスクリプトの便利さ。Java実験とデバッグ、および新しい方法でアプリケーションを拡張するためにBeanShellを対話的に使用できます。 Javaは、ラピッドプロトタイピング、ユーザースクリプト拡張、ルールエンジン、構成、テスト、動的展開、組み込みシステム、さらにはJava =教育。
http://www.beanshell.org/manual/syntax.html#Standard_Java_Syntax
Eclipse Scrapbookページを使用できます。
EclipseでScrapbookページを作成します。プロジェクトで、「新規」->「その他」->「スクラップブック」ページ。
ファイルにテキストを入力し、選択してctrl-Uを押してください。
インポートを管理するには、ページを右クリックして[インポートの設定]を選択します。ここで、パッケージまたは単一のクラスのインポートを選択できます。これは永続的であり、ページとともに保存されます。
古い質問ですが、より良い答えがあります(2013年5月)-Java-REPL! github で利用できます。また、迅速な1回限りのテストのために Java-repl Webサイト でライブで利用できます。
Gitハブコードを取得し、ant
を実行してアーティファクトを生成する場合、次のような小さなスクリプトで簡単に使用できます。
#!/bin/sh
Java -jar /home/rdahlgren/scripts/javarepl-dev.build.jar
このプロジェクトを見つけてから、おそらく1日5回使用します。楽しい!
Java(6、7)はjrunscript
と呼ばれるREPLコンソールを出荷します。これは言語に依存しません。 Jython、JRubyなど)。デフォルトでJavaScript(Rhino)もバンドルされており、他の言語と同様に、クラスパスで利用可能なすべてのパッケージ/オブジェクトにアクセスできます。
REPL calledJShell(Oracleが開発))は、JDK 9の一部としてリリースされました。
JDK 9をダウンロードして、bin/jshell
。
Groovyの代替として、Beanshellを試してください。 http://www.beanshell.org/
Javaに似ており、Java構文を直接使用できます。
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])
Albert Latacz によるJava-REPLはうまく機能します。
次のブラウザから直接試すことができます。 http://www.javarepl.com/term.html
ソースコードはここから入手でき、まともなIntelli-Jプラグインがあります。
Clojureは、REPLを使用できます。
Scala は対話型コンソールも提供します。次のように、InetAddressを完全修飾することで、質問の式の結果を取得するために使用できました。
Java.net.InetAddress.getAllByName("localhost")
groovy console を使用すると、それを実行できます。実際にはgroovyコードを試してテストすることを目的としていましたが、groovyはJavaのスーパーセットであるため、プレーンJava stuff。
これをコンソールに入力しました。
InetAddress.getAllByName('localhost')
cTRL-Rを押すと、返されます:
groovy> InetAddress.getAllByName('localhost')
Result: [localhost/127.0.0.1]
JRuby 、 BeanShell 、 Julian 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);
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 のチュートリアルを読んでください。
Java jrubyを使用して http://kenai.com/projects/jruby/pages/CallingJavaFromJRuby
すでに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などでも同じことができます。
Java 9はJShellを提供しています。
jshell> println( "Print me!")
jshell> Print me!
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>
また、コレクション、リスト、マップなどをダンプすることも賢明であり、それらをテーブルまたはチャートとしてレンダリングできます。
Java 8、Nudge4jがあります。 https://github.com/lorenzoongithub/Nudge4j を参照してください。
...そしてその美しさは、ブラウザからアプリケーションをパイロットできることです
単純なIDEと呼ばれる DrJava があります。これはインタラクションコンソールを備えています。期待どおりに機能します。ファイルをロードして、その中のオブジェクトとインタラクションを開始します。
ほとんどのIDEには、「即時モード」などのような名前のウィンドウがあり、その場でJavaコードを評価できます。
DrJava は、教育的なIDE REPLペインを含む。
Eclipseプラグインもありますが、私にはうまくいきませんでした。しばらく更新されていないと思います。したがって、私が通常行うことは、「これを行うとどうなりますか」という質問に対してDrJavaウィンドウを開いたままにすることです。
EclipseShellも良いかもしれませんが、私はまだ使っていません。
オンラインREPLがあります: http://www.javarepl.com/console.html
文字の制限に達するためにさらに入力すると...
Jython、 [〜#〜] jirb [〜#〜] JRuby、Groovy(groovyconsoleなど)、Beanshellはすべて実行可能なオプションです。
JythonにはInteractiveConsole
を使用しましたが、アプリで本当にうまく機能しました。