JavaアプリケーションとRCPアプリケーションの間に共通のコードがあります。OSGIバンドルを従来のjarファイルとして実行しているときにNoClassDefFoundError
が- メインクラスは、私はティコですべてを建て
私のRCPアプリケーションでそれを使用するために、古典的な瓶
私はそう、私は私のMANIFEST.MFにJSCHを追加しているJSCH使用する必要があります。
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Main-Class: mygroupid.Main
Bundle-Name: Common tools
Bundle-SymbolicName: common-tools
Bundle-Version: 1.0.1.qualifier
Export-Package: mygroupid,
mygroupid.tools
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Import-Package: org.osgi.framework;version="1.3.0"
Require-Bundle: com.jcraft.jsch;bundle-version="0.1.46"
私はティコと私のRCPアプリケーションを構築し、それが動作します。私はjava -jar myjar.jar
と純粋なJARとしてバンドルを実行したときしかし、私は次のエラーを取得する:私は、Eclipseでの私のバンドルをエクスポートする場合
Exception in thread "main" java.lang.NoClassDefFoundError: com/jcraft/jsch/JSchException
、それが動作します。だから私のタイコの設定に誤りがある...
この問題を解決するには? Tychoには依存関係がありますか?それは事実ではないようです。 私が逃したことはありますか?
(私の設定:M2eを持つEclipseのジュノ、ティコ0.16.0、P2:ジュノ、ティコ:パッケージ>日食・プラグイン、ターゲット・プラットフォームの構成:リゾルバ= P2とpomDependencies =は考える。)
はい、私はクラスパスを知っています。 Eclipseができるように、完全なOSGIバンドルが必要です。私は、コマンドラインバージョン用に1つのjarファイルのみをデプロイしたい。ティコと一緒にそれを作る方法? – cswormy
生成したeclipseエクスポートで書いたMANIFEST.MFを比較しようとすることができます。 – Weibo