首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用SIGAR时出现“java.library.path中没有sigar-winnt.dll”错误

使用SIGAR时出现“java.library.path中没有sigar-winnt.dll”错误
EN

Stack Overflow用户
提问于 2017-06-29 05:56:13
回答 1查看 967关注 0票数 0

我对java很陌生。我正在开发一个工具,以检查您的PC是否符合一些规格。这包括编写和执行单独的批处理文件,并包括用于CPU模型的API (SIGAR)。

我的问题是,当我尝试在eclipse中将它导出到可运行的JAR时,并且我从命令行运行得到的JAR时,它给了我许多'DLL‘,它没有包含在构建路径中’。在构建路径中包含包含API DLL的文件夹之后,我得到了类似的异常。修复的方法是将包含DLL的文件夹添加到高级系统设置中的环境变量(PATH)中。

问题:

  1. 这个JAR现在在我的计算机上运行良好,但是下载JAR的用户呢?他们还需要将DLL添加到环境变量中吗?如果是这样的话,有什么办法可以让罐子为他们做到这一点呢?
  2. 我的JAR不会双击运行,而是从命令行运行。有什么办法可以绕过这个问题,让下载JAR的用户也能看到吗?
  3. 如果用户由于没有正确的JRE版本而无法运行该工具,该工具会通知他们吗?如果没有,是否有办法绕过用户必须更新JRE或包装为EXE就足够了?

提前谢谢,非常感谢。很多问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-29 08:01:13

Q1: JAR现在在我的电脑上正常工作,但是下载JAR的用户呢?他们还需要将DLL添加到环境变量中吗?如果是这样的话,有什么办法可以让罐子为他们做到这一点呢?

您可以将DLL放入JAR文件中:

但是,当您分发包含DLL的JAR时,您会遇到这样的问题:不同的平台需要不同的DLL(或其他什么)。即使使用Windows,您也会遇到32位对64位DLL的问题。

Q2:我的JAR不会双击运行,而是从命令行运行。有什么办法可以绕过这个问题,让下载JAR的用户也能看到吗?

您不能在JAR文件中解决这个问题。“双击运行”功能由操作系统实现。提供这种功能的最佳方法是使用(特定于平台的)包装器脚本,这些脚本可以双击。

Q3:如果用户由于没有正确版本的JRE而无法运行该工具,该工具会通知他们吗?如果没有,是否有办法绕过用户必须更新JRE或包装为EXE就足够了?

除非安装了JRE,否则JAR文件只是一个被动的数据块。(实际上是一个ZIP文件)。

如果用户有一个太老的JRE,那么JRE将无法加载JAR中的任何类(因为类文件版本号是错误的),或者您会因为缺少(系统)类而得到错误。

唯一的希望是在尝试启动JAR之前提供一个包装脚本来启动检查JRE版本的应用程序。

通常情况下,如果您想要这样做,您需要在安装程序中分发您的程序,而不是作为一个裸露的JAR文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44817317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档