社区
Java EE
帖子详情
Java Runtime.getRuntime().exec如何在安全管理器下执行
土匪八号
2011-07-26 04:02:04
我在开发的过程中需要使用Java的Runtime.getRuntime().exec()的方法执行一些windows程序主要是.EXE程序。但又得保证这些.exe程序是安全的,将例如关机操作等不安全操作给阻止掉。网上搜了很多资料有的说用checkExec();但我不知道如何使用
...全文
206
14
打赏
收藏
Java Runtime.getRuntime().exec如何在安全管理器下执行
我在开发的过程中需要使用Java的Runtime.getRuntime().exec()的方法执行一些windows程序主要是.EXE程序。但又得保证这些.exe程序是安全的,将例如关机操作等不安全操作给阻止掉。网上搜了很多资料有的说用checkExec();但我不知道如何使用
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
土匪八号
2011-10-31
打赏
举报
回复
有个安全沙箱可以解决[Quote=引用 13 楼 cenkaijie 的回复:]
楼主,你的问题解决没有啊~~我也想问同样的问题~~
[/Quote]
cenkaijie
2011-10-24
打赏
举报
回复
楼主,你的问题解决没有啊~~我也想问同样的问题~~
土匪八号
2011-07-27
打赏
举报
回复
不行啊,我们的系统是放在服务器上的啊,如果该服务器上的系统设置会影响其他系统运行[Quote=引用 8 楼 qybao 的回复:]
引用 5 楼 fujianianhua 的回复:
怎么设置啊,是在系统里设置还是在Java 代码中设置
引用 3 楼 qybao 的回复:
设置执行用户的权限就可以了
比如关机操作等命令,可以设置它的执行权限,如果某用户没有执行权限,就会出错了
当然是在系统设置了
[/Quote]
qybao
2011-07-27
打赏
举报
回复
[Quote=引用 5 楼 fujianianhua 的回复:]
怎么设置啊,是在系统里设置还是在Java 代码中设置
引用 3 楼 qybao 的回复:
设置执行用户的权限就可以了
比如关机操作等命令,可以设置它的执行权限,如果某用户没有执行权限,就会出错了
[/Quote]
当然是在系统设置了
土匪八号
2011-07-27
打赏
举报
回复
[Quote=引用 6 楼 fujianianhua 的回复:]
引用 5 楼 fujianianhua 的回复:
怎么设置啊,是在系统里设置还是在Java 代码中设置
引用 3 楼 qybao 的回复:
设置执行用户的权限就可以了
比如关机操作等命令,可以设置它的执行权限,如果某用户没有执行权限,就会出错了
顶
[/Quote]我再顶
土匪八号
2011-07-27
打赏
举报
回复
我现在做的就是OJ,苦于只有自己一个人摸索[Quote=引用 10 楼 smcwwh 的回复:]
不是很清楚,
原来听别人说过个大概,
大致思路是:
检查.exe文件中调用到的系统调用,
系统调用如论在windows/linux系统中都是可以确定的,
如果调用了不允许的系统调用,就不执行这个.exe文件。
跟各大高校的OJ系统评判程序是一样的。
[/Quote]
qybao
2011-07-27
打赏
举报
回复
[Quote=引用 9 楼 fujianianhua 的回复:]
不行啊,我们的系统是放在服务器上的啊,如果该服务器上的系统设置会影响其他系统运行
引用 8 楼 qybao 的回复:
引用 5 楼 fujianianhua 的回复:
怎么设置啊,是在系统里设置还是在Java 代码中设置
引用 3 楼 qybao 的回复:
设置执行用户的权限就可以了
比如关机操作等命令,可以设置它的执行权限,如果某用户没有执行权限,就会出错了
当然是在系……
[/Quote]
一般像重启关机这种命令,不是管理员身份是不让执行的,你非要给这个执行用户这么大的权限吗?
你可以尝试
SecurityManager的checkExec方法,不过这样你就要自己管理安全管理器了
可以试试看写个class extends SecurityManager,重写checkExec方法
调用System.setSecurityManager()来设置安全管理器
Jaya1989
2011-07-27
打赏
举报
回复
不是很清楚,
原来听别人说过个大概,
大致思路是:
检查.exe文件中调用到的系统调用,
系统调用如论在windows/linux系统中都是可以确定的,
如果调用了不允许的系统调用,就不执行这个.exe文件。
跟各大高校的OJ系统评判程序是一样的。
土匪八号
2011-07-26
打赏
举报
回复
[Quote=引用 5 楼 fujianianhua 的回复:]
怎么设置啊,是在系统里设置还是在Java 代码中设置
引用 3 楼 qybao 的回复:
设置执行用户的权限就可以了
比如关机操作等命令,可以设置它的执行权限,如果某用户没有执行权限,就会出错了
[/Quote]顶
土匪八号
2011-07-26
打赏
举报
回复
怎么设置啊,是在系统里设置还是在Java 代码中设置[Quote=引用 3 楼 qybao 的回复:]
设置执行用户的权限就可以了
比如关机操作等命令,可以设置它的执行权限,如果某用户没有执行权限,就会出错了
[/Quote]
qybao
2011-07-26
打赏
举报
回复
设置执行用户的权限就可以了
比如关机操作等命令,可以设置它的执行权限,如果某用户没有执行权限,就会出错了
土匪八号
2011-07-26
打赏
举报
回复
[Quote=引用 1 楼 fujianianhua 的回复:]
有的好像用的是在java.policy中增加 permission java.io.FilePermission "exe_path", "execute"; 不知如何用
引用楼主 fujianianhua 的回复:
我在开发的过程中需要使用Java的Runtime.getRuntime().exec()的方法执行一些windows程序主要是.EXE程序。但又得保证这些.exe程序……
[/Quote]我顶
土匪八号
2011-07-26
打赏
举报
回复
有的好像用的是在java.policy中增加 permission java.io.FilePermission "exe_path", "execute"; 不知如何用
[Quote=引用楼主 fujianianhua 的回复:]
我在开发的过程中需要使用Java的Runtime.getRuntime().exec()的方法执行一些windows程序主要是.EXE程序。但又得保证这些.exe程序是安全的,将例如关机操作等不安全操作给阻止掉。网上搜了很多资料有的说用checkExec();但我不知道如何使用
[/Quote]
java
runtime
.
exec
阻塞_
java
Runtime
.get
Runtime
().
exec
阻塞卡死问题解决
java
中
Runtime
.get
Runtime
().
exec
是用来
执行
外部命令的,我就是用这个来
执行
spark程序spark-submit,我的场景就是定时任务调用这个代码来
执行
spark任务,但是总是遇到
Runtime
.get
Runtime
().
exec
一直等待不结束,导致程序不往下
执行
,定时任务的线程也一直卡着不动。1.阻塞原因分析用jps命令查看到了阻塞到的进程,再用jstack查看进程信息...
java
Runtime
.get
Runtime
.
exec
关于
Runtime
.get
Runtime
().
exec
传值问题 今天使用
java
Runtime
.get
Runtime
.
exec
遇到一个问题 在此记录 使用场景: 在一个spring-boot 项目中 调用一个第三方提供的加解密jar包时,第三方提供的jar包依赖包版本和当前项目中的jar包冲突,而且两个包都不能舍弃,都要用,这时就打算采用
java
进程调用的方法,新建一个工程然后加解密方法扔进去,然后打成可
执行
jar包,让spring-boot项目调用。 遇到问题: 向可
执行
jar包中传值,由于参数
Java
Runtime
.get
Runtime
().
exec
不
执行
Java
Runtime
.get
Runtime
().
exec
不
执行
在linux服务器上用
java
调用脚本,直接写
Java
Runtime
.get
Runtime
().
exec
(“要
执行
的命令”)有时候发现并不能
执行
响应的命令。 原因 这是因为linux
执行
命令需要使用linux系统自带的sh工具,而
java
虚拟机有时候并不能获取到系统的环境变量,导致命令无法被
执行
解决方法 在命令前加上 /b...
关于
Runtime
.get
Runtime
().
exec
()的使用和讲解
自己学习
Runtime
.get
Runtime
().
exec
()之后明白其用法,但是总结不出它的功能,在查阅网上资料找到一个比较通俗易懂且全面的答案:在
java
中,
RunTime
.get
Runtime
().
exec
()实现了调用服务器命令脚本来
执行
功能需要。 如果我们想在500秒后使电脑关机则需要在运行中输入 cmd ,打开命令弹框中输入: //添加一个60S后自动关闭计算机的计划。 shutdown -s -t 500 通过
Runtime
.get
Runtime
().
exec
()我们可以这样写 //
Java
Runtime
.get
Runtime
().
exec
()
执行
linux脚本
Java
Runtime
.get
Runtime
().
exec
()
执行
linux脚本 相关文章链接: linux系统配置(cpu、内存、磁盘等) 观前提示: 本文所使用的IDEA版本为ultimate 2019.1,JDK版本为1.8.0_141,Linux版本为CentOS release 6.10。 最近,在使用
Java
调用linux命令查询系统信息时发现,
执行
一些简单的脚步没有问题,但是稍微复杂的脚本变
执行
失败了。在百度了之后,发现加上 String[] cmd = new String[]{"s
Java EE
67,514
社区成员
225,878
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章