2017-12-25 34 views
0

私はこのlibraryを使用して、Javaを使用してTelegramボットを試してみました。 Gradleを使用してプロジェクトをセットアップして、依存関係を使用しました。次のように不正な反射アクセス操作が発生しました。Java電文ボット

マイプロジェクト階層は次のとおりです。

.gradle 
build 
gradle 
src 
-main 
    -java 
    -Main.java 
    -MyAmazingBot.java 
build.gradle 
gradlew 
gradlew.bat 

これは私がGradleのアップセットアップに使用guideです。 Gradle Wrapperを使用してビルドを実行しました。

はしかし、私は次のような警告が出ます:

WARNING: An illegal reflective access operation has occurred 
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/C:/Users/addis/.gradle/caches/modules-2/files-2.1/com.google.inject/guice/4.1.0/eeb69005da379a10071aa4948c48d89250febb07/guice-4.1.0.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) 
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1 
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations 
WARNING: All illegal access operations will be denied in a future release 

しかし、ボットは正常に動作(それは私のメッセージをエコーバック)。

1)このメッセージは懸念の原因になりますか?

2)java -jarを使用してjarファイルを実行できますか?メッセージを受け取るno main manifest attribute, in .\build\libs\fsc2.jar

3)Gradleのラッパーを使わずに./gradlew runを実行することはできますか?

答えて

1

1)これは明らかにGradleとJava 9の間に互換性がないためです。問題はGradle 2.4.12で修正されています。

参考:

2)どうやら、ありません。しかし、ある程度の努力を払って、アプリケーションとその依存関係を含むJARファイルをそのように実行できるようにする必要があります。

3)おそらくはい。これらのラッパーは単なるスクリプトなので、シェルコマンドプロンプトにコマンドを入力することで、同じことをすることができます。 (私はあなたが何をしているのか理解するためにスクリプトを読むことを提案し、アプリケーションを直接実行するかどうかを意識してください)

+0

警告はGradleではなくGuice/CGLIBのようです。 –

関連する問題