DJava.library.path不起作用,但是将目录添加到PATH可以工作

时间:2019-09-15 12:03:11

标签: java path

我有一个需要一些外部DLL才能工作的JAR文件。我用

加载这些DLL
WITH dates AS (
      SELECT @startDate AS [Date] 
      UNION ALL 
      SELECT DATEADD(DAY, 1, [Date]) 
      FROM dates 
      WHERE [Date] < @endDate
     )
SELECT s.[sid], s.[ecode], s.[scty], s.[sonm], d.[Date] 
FROM  [Z_ALI].[dbo].[M_STORE] s CROSS JOIN
      dates d
WHERE DATEPART(WEEKDAY, d.[Date]) = @dayOfWeek AND
      s.[sonm] = 'PENZKI STORE' 
OPTION (MAXRECURSION 0);

如果我尝试不带任何参数执行JAR,则DLL不会被找到(显然):

System.loadLibrary("openalprjni");

如果我尝试使用Djava.library.path将路径添加到DLL,则也不起作用(请注意,我将新路径附加到现有路径上,而不是覆盖它)< / p>

> java -jar dist\ALPRTest.jar "param1" "param2"
> Exception in thread "main" java.lang.UnsatisfiedLinkError: no openalprjni in java.library.path

请注意,现在的错误是> java -Djava.library.path="%PATH%;D:\ALPRTest\path-to-dll" -jar dist\ALPRTest.jar "param1" "param2" > Exception in thread "main" java.lang.UnsatisfiedLinkError: D:\ALPRTest\dist\openalprjni.dll: Can't find dependent libraries 而不是普通的Can't find dependent libraries。我不知道那是什么意思。

程序的唯一运行方式是在Windows控制面板中手动将no xxx in java.library.path添加到我的PATH变量中。

如果我使用D:\ALPRTest\path-to-dll,则可以确认两个-XshowSettings:properties完全相同,但是除非手动将此路径添加到PATH,否则JAR将不会运行。

java.library.path为什么不起作用,但添加到PATH却起作用?

0 个答案:

没有答案