如何为java指定MainClass

时间:2018-04-08 02:41:56

标签: java compilation

我试图创建一个.bat脚本只是为了运行一个java文件,我尝试使用JNI,但我有一个有趣的问题。

脚本所在的目录名为NativeMethodTest,并包含一个名为out的文件夹 现在当我在out文件夹中时,我可以用左

来调用我的主要课程

java HelloWorld
它只是工作正常,但当我在父文件夹中时,似乎用命令
启动runnig java -cp "./out" HelloWorld
但是我得到了这个错误

Exception in thread "main" java.lang.UnsatisfiedLinkError: no hello in java.library.path
    at java.base/java.lang.ClassLoader.loadLibrary(Unknown Source)
    at java.base/java.lang.Runtime.loadLibrary0(Unknown Source)
    at java.base/java.lang.System.loadLibrary(Unknown Source)
    at HelloWorld.<clinit>(HelloWorld.java:8)


但HelloWorld.java包含此行
System.setProperty("java.library.path", "D:\\projects\\NativeMethodTest\\out\\.");

它设置我的库路径绝对,所以它应该工作,当我在同一个文件夹,但不在父,请帮助

感谢

这里是文件夹结构:

./NativeMethodTest/run.bat ./NativeMethodTest/out/hello.dll ./NativeMethodTest/out/HelloWorld.class

1 个答案:

答案 0 :(得分:0)

好吧,这很奇怪,因为getProperty("java.library.path")方法给出了路径,所以我做了一个错误的假设,但是感谢Elliott我把我的脚本修改为
java -cp "./out" -Djava.library.path=".\out\." HelloWorld <登记/> 从父母那里现在也可以正常工作,
谢谢你有愉快的一天