2017-08-01 2 views
0

私が取り組んでいるプロジェクトは、JARにコンパイルされたいくつかの独立したライブラリとそれらを参照するメインプロジェクトです。すべてがScalaで書かれています。

私はChronicleMapを独自のマーシャラでカスタム値クラスを使用して、これらのライブラリの1つで内部的に使用しています。メインプロジェクトを実行する場合 は、私はこれらのエラーを取得:コマンドラインから実行するとき、のIntelliJ IDEAからプロジェクトを実行していないとき

/net/openhft/chronicle/core/values/ByteValue$$Native.java:15: error: cannot find symbol 
public class ByteValue$$Native implements ByteValue, Copyable<ByteValue>, BytesMarshallable, Byteable { 
             ^
    symbol: class ByteValue 
/net/openhft/chronicle/core/values/ByteValue$$Native.java:15: error: cannot find symbol 
public class ByteValue$$Native implements ByteValue, Copyable<ByteValue>, BytesMarshallable, Byteable { 
                  ^
    symbol: class ByteValue 
/net/openhft/chronicle/core/values/ByteValue$$Native.java:39: error: cannot find symbol 
    public void copyFrom(ByteValue from) { 
        ^
    symbol: class ByteValue 
    location: class net.openhft.chronicle.core.values.ByteValue$$Native 
/net/openhft/chronicle/core/values/ByteValue$$Heap.java:12: error: cannot find symbol 
public class ByteValue$$Heap implements ByteValue, Copyable<ByteValue>, BytesMarshallable { 
             ^
    symbol: class ByteValue 
/net/openhft/chronicle/core/values/ByteValue$$Heap.java:12: error: cannot find symbol 
public class ByteValue$$Heap implements ByteValue, Copyable<ByteValue>, BytesMarshallable { 
                  ^
    symbol: class ByteValue 
/net/openhft/chronicle/core/values/ByteValue$$Heap.java:34: error: cannot find symbol 
    public void copyFrom(ByteValue from) { 
        ^
    symbol: class ByteValue 
    location: class net.openhft.chronicle.core.values.ByteValue$$Heap 
/net/openhft/chronicle/core/values/ByteValue$$Native.java:20: error: method does not override or implement a method from a supertype 
    @Override 
^
/net/openhft/chronicle/core/values/ByteValue$$Native.java:25: error: method does not override or implement a method from a supertype 
    @Override 
^
/net/openhft/chronicle/core/values/ByteValue$$Native.java:30: error: method does not override or implement a method from a supertype 
    @Override 
^
/net/openhft/chronicle/core/values/ByteValue$$Native.java:65: error: cannot find symbol 
    if (!(obj instanceof ByteValue)) return false; 
         ^
    symbol: class ByteValue 
    location: class net.openhft.chronicle.core.values.ByteValue$$Native 
/net/openhft/chronicle/core/values/ByteValue$$Native.java:66: error: cannot find symbol 
    ByteValue other = (ByteValue) obj; 
    ^
    symbol: class ByteValue 
    location: class net.openhft.chronicle.core.values.ByteValue$$Native 
/net/openhft/chronicle/core/values/ByteValue$$Native.java:66: error: cannot find symbol 
    ByteValue other = (ByteValue) obj; 
        ^
    symbol: class ByteValue 
    location: class net.openhft.chronicle.core.values.ByteValue$$Native 
/net/openhft/chronicle/core/values/ByteValue$$Heap.java:15: error: method does not override or implement a method from a supertype 
    @Override 
^
/net/openhft/chronicle/core/values/ByteValue$$Heap.java:21: error: method does not override or implement a method from a supertype 
    @Override 
^
/net/openhft/chronicle/core/values/ByteValue$$Heap.java:26: error: method does not override or implement a method from a supertype 
    @Override 
^
/net/openhft/chronicle/core/values/ByteValue$$Heap.java:57: error: cannot find symbol 
    if (!(obj instanceof ByteValue)) return false; 
         ^
    symbol: class ByteValue 
    location: class net.openhft.chronicle.core.values.ByteValue$$Heap 
/net/openhft/chronicle/core/values/ByteValue$$Heap.java:58: error: cannot find symbol 
    ByteValue other = (ByteValue) obj; 
    ^
    symbol: class ByteValue 
    location: class net.openhft.chronicle.core.values.ByteValue$$Heap 
/net/openhft/chronicle/core/values/ByteValue$$Heap.java:58: error: cannot find symbol 
    ByteValue other = (ByteValue) obj; 
        ^
    symbol: class ByteValue 
    location: class net.openhft.chronicle.core.values.ByteValue$$Heap 

にのみ発生します。

また、同じカスタムクラスとマーシャラーで同じChronicleMapを使用するスタンドアロンプ​​ロジェクトを設定しても、IDEから実行する際に問題はありません。この問題は、IDEからマイライブラリを使用するプロジェクトを実行している場合にのみ発生します。

私はこれがクラスの読み込み順序、またはIDEにないいくつかの依存関係に関係するかもしれないと考えています。

IDEから実行できない理由を知るためにできることはありますか?

答えて

0

これは確かに何らかの設定問題のように見えます。

コードを-XX:+TraceClassLoadingで実行し、プログラムの成功/失敗の出力を比較することで、クラスローディングの詳細について知ることができます。

関連する問題