cm-cloud/cloud-hardware-smart-gate/src/main/java/netmanager/lib/PlatUtils.java
2020-09-07 12:53:44 +08:00

133 lines
4.6 KiB
Java

package netmanager.lib;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Properties;
import com.cm.smartgate.config.NetManagementConfig;
import com.sun.jna.Platform;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
// 平台操作类
@Component
public class PlatUtils {
@Autowired
private static NetManagementConfig netManagementConfig;
public PlatUtils() {
}
// 获取系统前缀表示(小写)
public static String sdk_plat_getOsPrefix() {
String strArch = System.getProperty("os.arch").toLowerCase();
final String strName = System.getProperty("os.name");
String strOsPrefix;
int nPlatform = Platform.getOSType();
if (Platform.WINDOWS == nPlatform) {
if ("i386".equals(strArch)) {
strArch = "x86";
} else if ("x86_64".equals(strArch) || "amd64".equals(strArch)) {
strArch = "x64";
}
strOsPrefix = "win-" + strArch;
} else if (Platform.LINUX == nPlatform) {
if ("x86".equals(strArch)) {
strArch = "x86";
} else if ("x86_64".equals(strArch) || "amd64".equals(strArch)) {
strArch = "x64";
}
strOsPrefix = "linux-" + strArch;
} else {
strOsPrefix = strName.toLowerCase();
if ("x86".equals(strArch)) {
strArch = "x86";
} else if ("x86_64".equals(strArch)) {
strArch = "x64";
}
int nSpace = strOsPrefix.indexOf(" ");
if (nSpace != -1) {
strOsPrefix = strOsPrefix.substring(0, nSpace);
}
strOsPrefix += "-" + strArch;
}
System.out.println(strOsPrefix);
return strOsPrefix;
}
// 读取当前目录下的路径配置文件
public static String sdk_plat_getCfgProperty(String configPath, String key) {
Properties properties = new Properties();
// String strRootPath = System.getProperty("user.dir").replace("\\", "/");
String strRootPath = configPath.replace("\\", "/");
FileInputStream inputStream = null;
try {
inputStream = new FileInputStream(strRootPath + "/config.properties");
properties.load(inputStream);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return properties.getProperty(key);
}
// 获取系统类型名称
public static String sdk_plat_getOsTypeName() {
String strOsName = "";
String strOsPrefix = sdk_plat_getOsPrefix();
if (strOsPrefix.startsWith("win-x86") || strOsPrefix.startsWith("win-x64")) {
strOsName = "win";
} else if (strOsPrefix.startsWith("linux-x86") || strOsPrefix.startsWith("linux-x64")) {
strOsName = "linux";
} else {
strOsName = "unknown";
}
return strOsName;
}
// 获取加载库名称
public static String sdk_plat_getLoadLibrary(String configPath, String strLibrary) {
String strOsPrefix = sdk_plat_getOsPrefix();
String strLoadLibraryDir = "";
String strLibraryName = "";
if (strOsPrefix.startsWith("win-x86")) {
strLoadLibraryDir = sdk_plat_getCfgProperty(configPath,"win-x86");
strLibraryName = strLibrary + ".dll";
} else if (strOsPrefix.startsWith("win-x64")) {
strLoadLibraryDir = sdk_plat_getCfgProperty(configPath,"win-x64");
strLibraryName = strLibrary + ".dll";
} else if (strOsPrefix.startsWith("linux-x86")) {
strLoadLibraryDir = sdk_plat_getCfgProperty(configPath,"linux-x86");
strLibraryName = "lib" + strLibrary + ".so";
} else if (strOsPrefix.startsWith("linux-x64")) {
strLoadLibraryDir = sdk_plat_getCfgProperty(configPath, "linux-x64");
strLibraryName = "lib" + strLibrary + ".so";
}
String strResult = configPath + strLoadLibraryDir + strLibraryName;
System.out.println(strResult);
return strResult;
}
// 获取当前时间
public static String sdk_plat_getDate(String format) {
SimpleDateFormat simpleDate = null;
if (null == format || format.isEmpty()) {
simpleDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
} else {
simpleDate = new SimpleDateFormat(format);
}
return simpleDate.format(new java.util.Date());
}
}