問題タブ [groovyshell]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
3946 参照

java - スクリプト内で Groovy 文字列を評価するにはどうすればよいですか?

基本的に、Groovy で CLI を作成しようとしています。JavaでJavaFX GUI全体をセットアップしており、groovyスクリプトを入力して、groovyスクリプト内でさまざまな機能を実行できるようにしたいと考えています。

たとえば、次のスクリプトがあるとします。

「meow();」と入力できるようにしたい Enter キーを押して、スクリプトを参照として使用して評価します。

使ってみました

しかし役に立たない。エラーが発生するだけです:

次のような他の標準関数を呼び出すことができます。

しかし、私は自分のメソッドを実行できません...どうすれば解決できますか?

0 投票する
2 に答える
973 参照

groovy - 文字列からGroovyクラスにプロパティを追加

文字列からGroovyクラスにプロパティを動的に追加することは可能ですか?
たとえば、ユーザーに「HelloString」などの文字列を挿入するように依頼し、
プロパティ HelloString を既存の Groovy グラスに追加しますか?

0 投票する
1 に答える
5057 参照

groovy - groovyConole/groovysh のクラスパスに複数の jar を追加するには?

これを聞かなければならないのはばかげているように感じますが、groovyConsole と groovysh のクラスパスに複数の jar ファイルを追加できないようです。複数の jar ファイルをクラスパスに追加するにはどうすればよいですか? これが私が試したことです:

groovyConsole -cp ~/lib/compile/jar/mysql-connector-java-5.1.32.jar:~/lib/compile/jar/ojdbc6-11.2.0.3.jar

ただし、コンソールでこのコードを実行すると、次のようになります。

最初の jar ファイルである mysql jar ファイルはクラスローダーに追加されますが、2 番目の jar ファイルである oracle jar ファイルは追加されないことに注意してください。また、次のように -cp 引数を 2 回使用してみました。

しかし、それはエラーで失敗します。ドキュメントには、Java と同じように動作するという漠然としたヒント以外のガイダンスが著しく欠けています。したがって、最初の試みが箱から出してすぐにうまくいかなかったのはなぜですか。

また、[スクリプト] > [Jar(s) をクラス パスに追加] メニュー オプションを使用して groovyConsole を起動した後、Jar ファイルを追加しようとしましたが、jar ファイルは追加されません。

では、なぜこれがより単純な方法で機能しないのでしょうか?

0 投票する
2 に答える
1615 参照

performance - Groovy シェルの起動が非常に遅い

インタラクティブなGroovy Shellを実行していますが、自分のマシンで起動するのに文字通り数分かかります (Intel i5 プロセッサと 4 GB の RAM を搭載した Windows 7 ラップトップなので、古いコンピューターではなく、中途半端なコンピューターです)。

groovyor groovyclientandを使用して単純なスクリプトを実行するにgroovyserverは、許容できる時間 (トップで数秒) がかかりますが、実行後groovysh、カーソルが点滅し始めます... お茶を飲むのに十分な時間、この質問を書いて、Twitter でこれについて暴言を吐きます (そして、まだコードを書くプロンプトはありません)

次の構成でこれを試しました

  • Groovy バージョン: 2.3.4 JVM: 1.7.0_03 ベンダー: Oracle Corporation OS: Windows 7
  • Groovy バージョン: 2.3.4 JVM: 1.8.0_20 ベン​​ダー: Oracle Corporation OS: Windows 7

そしてそれはまったく同じです。

REPLスタイルで使用できるようになりたいです。誰かが同様の問題に直面して解決しましたか? 仕事に別のツールをお勧めできますか?

コメントで示唆されているように、私は実行groovysh -d -vしてデバッグと詳細出力を有効にしました。

の出力groovysh -d -v

非常に長い間、それ以上の出力はなく、残りは数秒で完了します。

0 投票する
1 に答える
241 参照

groovy - groovysh でのクローズ エラー

groovyshv2.3.6 を実行します。

このエラーはclosureonの既知のバグgroovyshですか?

0 投票する
1 に答える
616 参照

java - IntegerMetaClass を GroovyShell に動的に追加する

特定のコンテキストIntegerMetaClassでのみカスタムを使用したいと思います。GroovyShell

その理由は、ランタイム全体を私の潜在的な 'disturbing' で汚染しないためIntegerMetaClassです。

魔法のパッケージに IntegerMetaClass.java の実装を入れると、魔法のように機能しますgroovy.runtime.metaclass.java.lang。しかし、中間の GroovyClassLoader に手動で追加しようとすると、機能しなくなります。

GroovyClassLoaderMetaClass を「解析」するだけでなく、やらなければならないことがありませんか? どこか他の ?

アップデート1:

上記のようIntegerMetaClass.minutesに、Java ソースのクラスパスに直接配置すると、ルックアップが機能します。

更新 2:

可能ではあるが満足のいく解決策:

gcl.parseClass呼び出しの直後に以下を追加

ただし、このソリューションでは、MetaClass ソースと元のターゲット クラスの間で一種の「マッピング」を維持して、より多くの機能をサポートする必要がありIntegerます。

0 投票する
1 に答える
311 参照

groovy - groovyshでインポートされたクラスからのものを参照する

ファイルがあるとしSomeThings.groovyます:

クラスパスで上記のファイルを使用して groovysh を開始し、次のようにします。

すべて良い。でも:

groovysh から参照するsomeVarにはどうすればよいですか?someFunc