コマンドラインからパッケージでGroovyのクラスを実行します
-
06-09-2019 - |
質問
Javaの場合と同様に、ドットでパッケージを指定することで、Groovyのクラスを実行する方法はありますか?
例:ファイル./my/package/MyClass.groovyます:
package my.package
class MyClass {
static void main(String[] args) {
println "ok"
}
}
> cd my/package my/package> groovy MyClass ok > cd ../.. > groovy my/package/MyClass.groovy ok > groovy my/package/MyClass ok > groovy my.package.MyClass Caught: java.io.FileNotFoundException: my.package.MyClass
私は最後のコマンドが動作するように期待していました。私は無駄に、クラスパスを設定するさまざまな方法を試してみました。
解決
まず、のパッケージのは予約キーワードであるので、あなたは、パッケージ名として使用することはできません。
ドット表記がないスクリプトのために、クラスのために使用されているので、あなたがそれを使用するようにコンパイルされたクラスファイルを必要とするので、すべての第二は、あなたが、Groovyでそれを行うことはできません。
それでも、あなたは、java +クラスパスでグルーヴィーなコマンドを置き換えることができます:
java -cp /usr/share/java/groovy/embeddable/groovy-all-1.6.3.jar:. my.some.MyClass
あなたはそれがあまり冗長にするために、たとえばそれはg_java 'にエイリアスを追加することができます。
所属していません StackOverflow