前言:
如今你们对“java的单引号双引号区别在哪”大体比较着重,咱们都需要剖析一些“java的单引号双引号区别在哪”的相关资讯。那么小编也在网上网罗了一些关于“java的单引号双引号区别在哪””的相关内容,希望小伙伴们能喜欢,同学们一起来了解一下吧!有时候,需要使用Java调用Windows的cmd窗口去执行一些命令,或者调用Linux的terminal窗口执行命令。可以使用java的java.lang.Process类来完成。
String command="*********";
Process process=Runtime.getRuntime().exec(command); process.waitFor();12
在使用此方式时候,对于command,有通过调用Windows的cmd窗口或者Linux的terminal窗口来执行命令的,也有不通过terminal来执行命令的。
标志1是直接执行的,没有调用terminal;
标志2是调用了terminal来执行命令的;
标志3是调用了Windows的cmd来执行命令的。
//说明:/usr/local/ffmpeg/bin/ffmpeg是ffmpeg的路径,可以在PATH中配置其路径,然后就可以直接使用ffmpeg命令了
//标志1
command="/usr/local/ffmpeg/bin/ffmpeg -y -i /usr/local/tomcat/webapps/simplest_video_website/videoori/12345.mp4 -ss 5 -s 220x110 -f image2 -vframes 1 /usr/local/tomcat/webapps/simplest_video_website/videothumbnail/48.jpg
"
//标志2。注意提前安装好gnome-terminal,否则命令无法识别。或者也可以使用/bin/sh
String command="gnome-terminal -x /usr/local/ffmpeg/bin/ffmpeg -y -i "+"\""+realfileoriPath+"\""+
" -ss "+thumbnail_ss_cfg.getVal()+" -s 220x110 -f image2 -vframes 1 "+"\""+realthumbnailPath+"\"";
//标志3
String command="cmd /c start ffmpeg -y -i "+"\""+realfileoriPath+"\""+
" -ss "+thumbnail_ss_cfg.getVal()+" -s 220x110 -f image2 -vframes 1 "+"\""+realthumbnailPath+"\"";12345678910
对于标志1的执行,没有调用terminal,可以执行;但是当使用标志2的方式来执行时候,总是会报错:路径找不到。但是将命令输出,然后手动粘贴到terminal去执行,是正常无误的。原因目前还未知,猜想是Java对路径作了解析。对于这种参数问题,参考网页8中给出了一个参考方式,使用数组的方式传递参数
Runtime.getRuntime().exec(new String[]{"sh","-c",raw2flvCmd});1
标志3是Windows环境下的。
cmd /c dir 是执行完dir命令后关闭命令窗口。
cmd /c start dir 会打开一个新窗口后执行dir指令,原窗口会关闭。
另外,有关于PATH
直接在命令行中设置PATH,只对当前会话有效
修改~/.bashrc只是对当前用户有效的PATH
修改.bash_profile只是对当前用户有效
修改/etc/profile是对所有用户生效
让修改立即生效,可使用source /etc/profile或者. /etc/profile
source命令也称为“点命令”,也就是一个点符号(.)。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。
报错bash: syntax error near unexpected token ('
需要转义\( xxx \)
shell转义符,分为双引号,单引号,以及\
双引号作用与单引号类似,区别在于它没有那么严格。单引号告诉shell忽略所有特殊字符,而双引号只要求忽略大多数,具体说,括在双引号中的三种特殊字符不被忽略:$,\, ,即双引号会解释字符串的特别意思,而单引号直接使用字符串.如果使用双引号将字符串赋给变量并反馈它,实际上与直接反馈变量并无差别。如果要查询包含空格的字符串,经常会用到双引号。
HP-Pavilion-g4-Notebook-PC:/usr/local$ echo $x
bin eclipse etc ffmpeg games hadoop include lib man mysql mysql-server_5.7.16-1ubuntu14.04_amd64.deb-bundle.tar Python sbin selenium share src tomcat
HP-Pavilion-g4-Notebook-PC:/usr/local$ echo "$x"
*
HP-Pavilion-g4-Notebook-PC:/usr/local$ echo '$x'
$x
1234567
另外还看到使用JNative.jar的方式调用windows API。
就先聊到这,如想更深的了解请加群讨论哦 894180257
标签: #java的单引号双引号区别在哪