Java获取运行环境信息

在做视频截取封面的时候用到了ffmpeg.我采用的是通过Java调用bat或sh脚本然后生成图片文件. 在线上使用的是Centos 7.所以程序中需要获取到当前运行环境的信息来选择调用bat命令还是sh

运行脚本&程序代码

  • win
D:\ffmpeg\bin\ffmpeg.exe  -ss 3 -i D:\upload\video\%1.mp4  -y -f image2 -t 0.001 -s 300*240 D:\upload\video\%2_pic.jpg
  • Linux
#!/bin/sh
src=$1
w=$2
h=$3
dist=$4
ffmpeg -ss 3 -i /home/yangkun/upload/video/$src  -y -f image2 -t 0.001 -s $w*$h /home/yangkun/upload/video/$dist.jpg
  • 程序代码
	String os = System.getProperty("os.name");
			if(os.toLowerCase().startsWith("win")){
				ProcessBuilder winBuilder = new ProcessBuilder("cmd.exe", "/c", "call", "D:\\upload\\run.bat",UUID,UUID);
				winBuilder.start();
			}else{
				ProcessBuilder LinuxBuilder = new ProcessBuilder("/home/yangkun/run.sh",UUID,"300","240",UUID);
				LinuxBuilder.start();
			}

Java获取当前运行环境信息

  • 判断操作系统是Linux还是Windows
String os = System.getProperty("os.name");  
if(os.toLowerCase().startsWith("win")){  
  System.out.println(os + " win ");  
}  
  • System类getProperty方法参数
键相关值的描述
java.version	Java 运行时环境版本
java.vendor	Java 运行时环境供应商
java.vendor.url	Java 供应商的 URL
java.home	Java 安装目录
java.vm.specification.version	Java 虚拟机规范版本
java.vm.specification.vendor	Java 虚拟机规范供应商
java.vm.specification.name	Java 虚拟机规范名称
java.vm.version	Java 虚拟机实现版本
java.vm.vendor	Java 虚拟机实现供应商
java.vm.name	Java 虚拟机实现名称
java.specification.version	Java 运行时环境规范版本
java.specification.vendor	Java 运行时环境规范供应商
java.specification.name	Java 运行时环境规范名称
java.class.version	Java 类格式版本号
java.class.path	Java 类路径
java.library.path	加载库时搜索的路径列表
java.io.tmpdir	默认的临时文件路径
java.compiler	要使用的 JIT 编译器的名称
java.ext.dirs	一个或多个扩展目录的路径
os.name	操作系统的名称
os.arch	操作系统的架构
os.version	操作系统的版本
file.separator	文件分隔符(在 UNIX 系统中是“/”)
path.separator	路径分隔符(在 UNIX 系统中是“:”)
line.separator	行分隔符(在 UNIX 系统中是“/n”)
user.name	用户的账户名称
user.home	用户的主目录
user.dir	用户的当前工作目录
posted @ 2017-05-19 14:40  0xcafedaddy  阅读(3146)  评论(0编辑  收藏  举报