Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在基于maven的项目中附加DLL文件_Java_Windows_Maven_Dll - Fatal编程技术网

Java 如何在基于maven的项目中附加DLL文件

Java 如何在基于maven的项目中附加DLL文件,java,windows,maven,dll,Java,Windows,Maven,Dll,您能告诉我如何以优雅的方式将dll文件附加到基于maven的项目中吗 当我输入system32 id时,它确实起作用(当然,这是因为system32属于路径)。然而,我的目标是使应用程序更具可移植性(当然是在基于windows的操作系统中) 有什么想法吗?将dll放在资源文件夹中,然后在运行时复制并执行操作。就像下面的代码 package dllportable; import java.io.File; import java.io.IOException; imp

您能告诉我如何以优雅的方式将
dll
文件附加到基于maven的项目中吗

当我输入system32 id时,它确实起作用(当然,这是因为system32属于
路径
)。然而,我的目标是使应用程序更具可移植性(当然是在基于windows的操作系统中)

有什么想法吗?

将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放在资源文件夹中,然后在运行时复制并执行操作如何。就像下面的代码

 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,而不是在maven项目中使用dll。如果关于使用dll,可以建议JNILets建议这个JNI,那么我接受你的帖子。我不知道它是什么意思,但效果应该是应用程序是可移植的。JNI是Java本机接口。当我们有一些java库和一些不同技术(如.Net或C++)的库时,JNI被用来弥补这些差距。过去我用Com4J建了一座桥。如果我是对的,你的可移植应用程序在VB.NET中。我希望看到关于如何进行的更好的细节。要么作为JNI,要么作为dll保留原样。因为它包括时间投资。同样对于VB.net,如果我们没有为特定的exe创建任何特定的dll,我们可以在windows中运行exe。仅供参考…我的问题是:在日志中,我得到了错误:找不到dll:someLibrary.dll。当我把它放到某个路径目录(例如system32)中时,它确实工作了。然而,我想得到一个通用的解决方案,不知道为什么这是被否决的?。用户提到了附加dll,而不是在maven项目中使用dll。如果关于使用dll,可以建议JNILets建议这个JNI,那么我接受你的帖子。我不知道它是什么意思,但效果应该是应用程序是可移植的。JNI是Java本机接口。当我们有一些java库和一些不同技术(如.Net或C++)的库时,JNI被用来弥补这些差距。过去我用Com4J建了一座桥。如果我是对的,你的可移植应用程序在VB.NET中。我希望看到关于如何进行的更好的细节。要么作为JNI,要么作为dll保留原样。因为它包括时间投资。同样对于VB.net,如果我们没有为特定的exe创建任何特定的dll,我们可以在windows中运行exe。仅供参考…我的问题是:在日志中,我得到了错误:找不到dll:someLibrary.dll。当我把它放到某个路径目录(例如system32)中时,它确实工作了。不过,我想得到通用的解决方案,没有拷贝