1
優雅な方法で、dll
ファイルをmavenに基づいてプロジェクトに添付する方法を教えてください。mavenベースのプロジェクトにDLLファイルを添付するには
私がsystem32に入れたとき、idは動作します(もちろんsystem32はPATH
に属しているからです)。しかし、私の目的は、アプリケーションをより移植性の高いものにすることです(WindowsベースのOSの中ではもちろん)
アイデア?
優雅な方法で、dll
ファイルをmavenに基づいてプロジェクトに添付する方法を教えてください。mavenベースのプロジェクトにDLLファイルを添付するには
私がsystem32に入れたとき、idは動作します(もちろんsystem32はPATH
に属しているからです)。しかし、私の目的は、アプリケーションをより移植性の高いものにすることです(WindowsベースのOSの中ではもちろん)
アイデア?
リソースフォルダにdllを置いて、実行時に操作をコピーして実行するのはどうですか?以下のコードのように。
package dllportable;
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;
import java.nio.file.Files;
public class dllportable {
public static void main(String[] args) throws URISyntaxException, IOException {
URL url=dllportable.class.getClassLoader().getResource("config.dll");
System.out.println(url.toURI());
Files.copy(new File(url.toURI()).toPath(), new File("C:\\haroon\\config.dll").toPath());
// Then your Operations on the DLL
}
}
なぜこれがダウンリストされますか?ユーザーがDLLを添付することについて言及し、DLLをmavenプロジェクトに使用しないことについて言及しました。 DLLを使用する場合は、JNIを提案している可能性があります – HaroonIsmailbasha
このJNIを提案して、あなたの投稿を受け入れます。私はJNIが何を意味するのか分かりませんが、そのアプリは移植可能でなければなりません。 –
JNIはJava Native Interfaceです。私たちがいくつかのライブラリをjavaに、いくつかの技術を(例えば.NetやC++のように)持っている場合、JNIはそれらのギャップを埋めるために使われます。私は過去にCom4J https://github.com/kohsuke/com4jを使ってブリッジを構築しました。あなたの移植性の高いアプリケーションはVB.NETにあります。私はどのように進行するかについてのより良い詳細を見たいと思う。 JNIまたはdllとしてそのまま残します。それは時間の投資を含んでいるので。 – HaroonIsmailbasha