Eclipse プラグインを開発しようとしています。このプラグインはjgitを使用して、ubuntu のユーザー名とパスワードを使用して ssh 経由で git リポジトリにアクセスします。( Java でユーザー名とパスワードを使用して ssh 経由で git リポジトリのクローンを作成します) NetbBeans で jgit を使用すると、問題なく動作します。問題なく、プロジェクトのクローン、コミット、およびプッシュを行うことができます。ただし、同じコード フラグメントを jgit プラグインの Eclipse jsch に移動すると、プロジェクトに追加した jsch が競合します。追加したものを削除すると、コードをコンパイルできません (クラスに com.jcraft.jsch.Session をインポートする必要があります)。一方、追加すると、次のエラーが発生します
java.lang.LinkageError:
loader constraint violation: loader
(instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader)
previously initiated loading for a different type with name
"com/jcraft/jsch/Session"
この混乱から抜け出す方法はありますか?
jgit-3.2.0 と jsch-0.1.5.0 を使用しています。Eclipse のバージョンは Kepler です。
私のプラグインマニフェスト
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: ****
Bundle-SymbolicName: ****;singleton:=true
Bundle-Version: 1.1.0513
Bundle-Activator: ****.Activator
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
org.eclipse.ui.browser;bundle-version="3.4.100",
org.eclipse.core.resources;bundle-version="3.8.100",
org.eclipse.ui.ide;bundle-version="3.9.0",
org.eclipse.jdt.core;bundle-version="3.9.0",
org.eclipse.core.filesystem;bundle-version="1.4.0",
org.eclipse.team.core;bundle-version="3.7.0",
org.eclipse.jgit;bundle-version="3.2.0",
org.eclipse.jdt.launching;bundle-version="3.7.0"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .,
lib/commons-io-2.4.jar,
lib/zip4j_1.3.2.jar,
lib/jsch-0.1.50.jar