Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.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
从批处理文件调用包含jna的java程序_Java_Batch File_Jna - Fatal编程技术网

从批处理文件调用包含jna的java程序

从批处理文件调用包含jna的java程序,java,batch-file,jna,Java,Batch File,Jna,我试图在批处理文件中调用java程序。我的java程序使用JNA调用dll。运行批处理文件时,它表示找不到jna库类。我已经将jna jar文件放入我的批处理文件文件夹。遗漏了什么 我的批处理文件: @ECHO OFF java -cp .;jna-4.1.0.jar com/sun/jna/Library java MyBenchmark 我得到以下错误: java.lang.NoClassDefFoundError:com/sun/jna/Library 我的JNAJAR文件也与我的基准批

我试图在批处理文件中调用java程序。我的java程序使用JNA调用dll。运行批处理文件时,它表示找不到jna库类。我已经将jna jar文件放入我的批处理文件文件夹。遗漏了什么

我的批处理文件:

@ECHO OFF
java -cp .;jna-4.1.0.jar com/sun/jna/Library
java MyBenchmark
我得到以下错误:

java.lang.NoClassDefFoundError:com/sun/jna/Library

我的JNAJAR文件也与我的基准批处理文件位于同一文件夹中。 当使用java-cp时。;jna-4.1.0.jar com/sun/jna/Library,cmd也给出了该错误: 在类com.sun.jna.Library中找不到Main方法


库是一个接口,我的java程序使用这个接口。但cmd表示,如果没有main,它无法加载它。我必须使用它来访问jna。

您必须指定ClassPath-cp:java-cp[path to your jar][class file to run]

选中

如果您使用JNA并希望从批处理文件调用使用其库的java程序,则必须避免使用java文件。因为当您也从批处理调用jna.jar时,它不能在运行时加载类

我的代码是:

@ECHO OFF
java -jar jna-4.1.0.jar
java MyBenchmark
我也尝试了许多其他的解决方案,但都不管用。我也在问题部分使用了代码

最后,我尝试将我的项目导出为jar并使用它。首先,我想声明我的IDE是Intellij IDEA。它不能将项目依赖关系放入清单文件JNA路径,尽管我已经放入了jar依赖关系。所以,若您使用IDEA,您必须手动从工件屏幕输入,否则您的jar将无法正常工作。然后,您可以将您的jar放在与bacth相同的文件夹下,并按如下方式调用它:

java -jar MyJarFile.jar

我使用了它们,我还添加了库类。它说图书馆没有主要的方法。我不明白,我只是想使用jna库中的一个类,而不是一个主方法。仍然是相同的错误,我改变了一点方式,现在工作了。谢谢你的帮助。我将在下面给出我的解决方案