いくつかの方法 (Google、Stack Overflow...) で試してみましたが、数日以内に次のエラーを解決できませんでした。このエラーは、アプリケーションを実行した場合にのみ発生します。コンパイルは影響を受けません。
org.databene.commons.ConfigurationError: クラスが見つかりません: 'org.databene.benerator.engine.DefaultBeneratorFactory' at org.databene.commons.ExceptionMapper.configurationException(ExceptionMapper.java:121) at org.databene.commons.BeanUtil.forName (BeanUtil.java:358) org.databene.commons.BeanUtil.newInstance(BeanUtil.java:423) で org.databene.benerator.BeneratorFactory.getInstance(BeneratorFactory.java:56) で org.databene.benerator.util. GeneratorUtil.init(GeneratorUtil.java:54) at testGeneration.TestCaseGenerator.generateTests(TestCaseGenerator.java:326)
つまり、DefaultBeneratorFactory クラスのオブジェクトをインスタンス化しようとしても、問題は発生しません。ジェネレーターを開始するメソッドを呼び出すと、エラーが発生します。
GeneratorUtil.init(stringGenerator);
私が開発したアプリケーションは、OS X El Capitan の Intellij Idea Community Edition (バージョン 2016.2.4) のプラグインです。Java 環境は Oracle JDK 8u102 です。私のプラグインは、Jar のセットとしてダウンロードできる Databene Benerator フレームワークを使用しています。対応する jar をライブラリとしてプロジェクトに含めました。
依存関係を参照してください。
私はいくつかの提案に従いました:
1) 各 Jar のエクスポート オプションをマークします。リンク
2) 出力パスを変更し、グローバル ライブラリを設定します。リンク
3) 以前のバージョンの IDEA を使用し、以前の JDK、IDEA の無効化キャッシュを試します。
もう 1 つの重要な情報として、私のプラグインの Eclipse バージョンは、同じバージョンの Benerator フレームワークを使用して、同じ環境で完全に機能します。ですから、ここにIDEAの特殊性があると思います。
どんな助けでも大歓迎です!!
問題は、Intellij Idea が jar 内のクラスをどのように処理するかだと思います。DefaultBeneratorFactory.class は、正しいパス org/databene/benerator/engine の jar にあります。誰でもこれを説明できますか?