質問

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 'にエイリアスを追加することができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top