`

(转)在 maven 项目中使用 sigar

 
阅读更多
http://bastengao.com/blog/2013/12/using-sigar-in-maven-project.html

1. 项目中添加依赖
<dependency>
    <groupId>org.fusesource</groupId>
    <artifactId>sigar</artifactId>
    <version>1.6.4</version>
</dependency>
2. 添加sigar本地库到 java.library.path
sigar API 依赖本地库文件工作的,内部通过java.library.path加载本地库文件。 本地库文件根据不同的平台,有下面这些文件。

libsigar-amd64-freebsd-6.so
libsigar-amd64-linux.so
libsigar-amd64-solaris.so
libsigar-ia64-hpux-11.sl
libsigar-ia64-linux.so
libsigar-pa-hpux-11.sl
libsigar-ppc-aix-5.so
libsigar-ppc-linux.so
libsigar-ppc64-aix-5.so
libsigar-ppc64-linux.so
libsigar-s390x-linux.so
libsigar-sparc-solaris.so
libsigar-sparc64-solaris.so
libsigar-universal-macosx.dylib
libsigar-universal64-macosx.dylib
libsigar-x86-freebsd-5.so
libsigar-x86-freebsd-6.so
libsigar-x86-linux.so
libsigar-x86-solaris.so
sigar-amd64-winnt.dll
sigar-x86-winnt.dll
我试着将这些文件放在classpath下(src/main/resources)或者通过 sigar-dist 依赖的方式加载都以失败告终。网上有篇博客 讲如何通过解压 sigar-dist 依赖的方式,来组织 java.library.path,但是整个配置太过复杂。

最终我想到个办法是:

将 sigar 的本地库文件放在 src/main/resources/sigar 目录下,还是的 classpath 下
通过 java api 读取 sigar 路径,并将路径追加到 java.library.path中。
代码如下,详见gists。

import com.google.common.io.Resources;
import org.hyperic.sigar.Sigar;

import java.io.File;
import java.io.IOException;

/**
* @author gaohui
* @date 13-11-27 19:43
*/
public class SigarUtil {

    public final static Sigar sigar = initSigar();

    private static Sigar initSigar() {
        try {
            String file = Resources.getResource("sigar/.sigar_shellrc").getFile();
            File classPath = new File(file).getParentFile();

            String path = System.getProperty("java.library.path");
            if (OsCheck.getOperatingSystemType() == OsCheck.OSType.Windows) {
                path += ";" + classPath.getCanonicalPath();
            } else {
                path += ":" + classPath.getCanonicalPath();
            }
            System.setProperty("java.library.path", path);

            return new Sigar();
        } catch (Exception e) {
            return null;
        }
    }
}
分享到:
评论

相关推荐

    maven项目转换WEB项目

    如果你不熟悉Maven,但想要在Eclipse中使用一个基于Maven的Web项目,可以遵循以下步骤: 1. **导入Maven项目到Eclipse**:在Eclipse中选择“File” &gt; “Import” &gt; “Maven” &gt; “Existing Maven Projects”,然后...

    maven项目转动态web项目,部署到tomcat

    Maven 项目转动态 Web 项目并部署到 Tomcat 是一个常见的操作,特别是在 Eclipse 和 Tomcat 环境下。本文将详细介绍如何将 Maven 项目转换为动态 Web 项目,并将其部署到 Tomcat 中。 Maven 项目转换为动态 Web ...

    在IDEA的maven项目中连接并使用MySQL8.0的方法教程

    第一步:在IDEA中新建一个maven项目 1.使用骨架创建maven项目,此处选择:maven-archetype-quickstart 2.填入GroupId和ArtifactId 3.第一个选中maven安装的文件夹,第二个选中maven安装文件夹中的conf/settings....

    Maven在eclipse中的项目启动命令

    在Eclipse中使用Maven进行项目管理和构建时,了解这些基本概念和命令是非常重要的。它们不仅能够帮助开发者高效地构建和部署项目,还能有效避免一些常见的问题。通过正确设置Maven配置以及合理使用这些命令,可以极...

    idea使用maven创建web项目详细教程

    Maven 依赖管理是通过 pom.xml 文件来管理的,例如可以在 pom.xml 文件中添加依赖关系,以便在项目中使用相应的库。 9. Maven 项目结构 Maven 项目结构主要包括 src/main/java、src/main/resources、src/test/java...

    ​实现maven项目中多版本依赖兼容使用解决方案

    在Java开发中,Maven作为主流的构建工具,管理着项目的依赖关系。然而,当项目引入多个库时,可能会遇到依赖冲突的问题。依赖冲突通常发生在两个或更多库使用相同类的不同版本时,Maven默认会选择最高版本的依赖,但...

    IntelliJ IDEA将导入的项目转成maven项目

    在文件选择器中找到项目的`pom.xml`文件,这是Maven项目的配置文件,导入后,IDEA会识别出这是一个Maven项目。 4. **导入依赖**: 导入`pom.xml`后,IDEA会自动读取其中的依赖,并将它们添加到项目的类路径中。在...

    MavenWEB项目使用ProGuard进行混淆,最佳解决方案.docx

    本文主要介绍了如何使用 ProGuard 对 Maven WEB 项目进行混淆,解决了 WEB 项目中混淆的难题。文章首先介绍了混淆的必要性,然后详细介绍了 WEB 项目的结构和 Maven 配置文件(pom.xml),最后展示了如何使用 ...

    基于maven创建web项目

    在本文中,我们将基于maven创建一个web项目,首先我们需要搭建maven环境,包括安装Myeclipse2013、Tomcat8.0、Jdk1.8和apache-maven-3.3.9。然后,我们需要配置jdk和maven的环境变量,包括设置JAVA_HOME和MAVEN_HOME...

    maven项目开发的maven3.3.9使用包

    在SpringBoot项目中,Maven 3.3.9 能够有效地帮助开发者管理和组织项目的构建过程。 ### Maven 的核心概念 1. **项目对象模型(Project Object Model,POM)**:Maven 项目的核心是POM,这是一个XML文件,包含了...

    maven项目eclipse导入步骤(可以让你的maven项目正常运行)

    ### Maven项目Eclipse导入步骤详解 #### 一、前言 在进行软件开发时,Maven作为一款自动化构建工具,能够极大地提高项目的构建效率。...希望本文能够帮助你在使用Maven和Eclipse的过程中更加顺利高效。

    使用Maven构建多模块项目

    本文将深入探讨如何利用Maven构建多模块项目,以及在实际操作中需要注意的关键点。 1. Maven多模块项目结构: Maven多模块项目通常遵循一个标准的目录结构,包括一个顶级父 pom.xml(如test-hd-parent),和若干子...

    使用Eclipse构建Maven项目 配套示例项目源码

    通过以上步骤,你可以掌握在Eclipse中使用Maven构建和管理项目的基本操作。同时,"testweb_svn"源码提供了一个实际的案例,帮助你加深对Maven项目配置和Web开发的理解。在实践中不断探索和学习,你将更好地掌握Maven...

    springboot(web项目,非maven)

    标题中的“springboot(web项目,非maven)”指的是一个基于Spring Boot框架构建的Web应用程序,但它不是使用Maven作为构建工具。Spring Boot简化了Java Web应用的开发过程,提供了快速构建可运行的应用程序的方式,而...

    Eclipse中Maven项目创建及相关操作

    在创建过程中,你可以选择是否要使用Maven的默认项目结构,或者自定义项目骨架。在输入项目信息时,包括项目名称、集团包名等,你还可以通过`pom.xml`文件管理项目依赖。对于Web项目,你需要确保项目结构包括了`src/...

    Maven构建项目文档

    这篇文档将详细介绍如何在 MyEclipse 中导入 Maven 项目以及使用 Maven 的常见命令。 首先,要在 MyEclipse 中导入 Maven 项目,你需要通过以下步骤操作: 1. 右键点击 MyEclipse 左侧的项目视图空白区域。 2. ...

    新建maven项目基础

    在IT行业中,Maven是一个非常重要的工具,尤其对于Java开发者来说,它是构建和管理Java项目的标准之一。"新建Maven项目基础"这个主题涵盖了创建、配置以及管理Maven项目的基本步骤和概念。以下是对这些基础知识的...

    在java工程中配置maven项目

    2. 使用IDE:大多数现代Java IDE(如IntelliJ IDEA,Eclipse)都集成了Maven,可以直接在IDE中创建Maven项目。 四、配置pom.xml pom.xml是Maven项目的核心配置文件,包含项目的基本信息、依赖、构建设置等。例如:...

    Eclipse搭建MAVEN项目

    Eclipse 搭建 Maven 项目详解 Maven 是一个项目管理工具,能够帮助开发者更好地管理项目的依赖关系...通过以上步骤,可以在 Eclipse 中搭建 Maven 项目,使用 Maven 管理依赖关系和编译过程,提高开发效率和项目质量。

Global site tag (gtag.js) - Google Analytics