java运行linux命令时报错
项目场景:
项目相关背景:
项目使用docker容器部署,在大屏展示功能时有及格功能,分别是展示当前系统内存使用情况,带宽使用情况。
问题描述
一个能执行,另一个报错
部分代码,第一个是收集带宽的功能,能够正常执行
System.out.println("开始收集带宽率");float netUsage = 0.0f;long netTotal = 0l;Process pro1,pro2; Runtime r = Runtime.getRuntime(); try { String command = "cat /proc/net/dev"; //第一次采集流量数据 long startTime = System.currentTimeMillis(); pro1 = r.exec(command); BufferedReader in1 = new BufferedReader(new InputStreamReader(pro1.getInputStream())); String line = null; long inSize1 = 0, outSize1 = 0; while((line=in1.readLine()) != null){ line = line.trim(); if(line.startsWith("eth0")){
下面是查看内存使用情况的代码,会报错,exec不管是数组还是字符串都是一样的
log.info("开始收集cpu使用率");List<Mem> list = new ArrayList<>();try {Runtime rt = Runtime.getRuntime();Process p = rt.exec(new String[]{"free","-hl"});// 内存BufferedReader in = null;try {in = new BufferedReader(new InputStreamReader(p.getInputStream()));
原因分析:
提示: linux执行环境问题
我自然而然的登录linux使用free -hl发现没问题,忘记了jvm环境是在docker中,当我进入docker后,发现free命令不存在。而带宽是打开文件进行查看,所以没有报错
解决方案:
提示:下载环境或者更换基础环境
先看dockerfile是如何编写的
FROM openjdk:8-jre
WORKDIR /
ADD web-operation-system-0.1-SNAPSHOT.jar /web-operation-system-0.1-SNAPSHOT.jar
EXPOSE 9063
ENTRYPOINT ["java","-Xms256m","-Xmx512m","-jar","web-operation-system-0.1-SNAPSHOT.jar"]
1.环境中下载基础命令
RUN apt-get update&&apt-get -y install procps
2.更换基础环境(推荐)
因为这个下载速度很慢,也有失败的风险,建议在open-jdk这个基础镜像中下载好基础命令,再打成新的jdk镜像,作为该包的基础镜像
java运行linux命令时报错相关推荐
- java运行linux命令程序_Java程序执行Linux命令
java程序中要执行linux命令主要依赖2个类:Process和Runtime 首先看一下Process类: ProcessBuilder.start() 和 Runtime.exec 方法创建一个 ...
- nvm安装nodejs 运行use命令时报错exit status 1: ��û���㹻��Ȩ��ִ�д˲�����
错误提示:exit status 1: ��û���㹻��Ȩ��ִ�д˲����� 换目录重新安装多次都没用 猜测应该是权限问题 遂将cmd以管理员身份运行 ok问题解决
- IDEA 运行maven命令时报错: -Dmaven.multiModuleProjectDirectory system propery is not set
在file-setting里面,找到maven的设置: 先加入一个环境变量 然后配置一个JVM的参数: -Dmaven.multiModuleProjectDirectory=$M2_HOME OK ...
- nvm安装nodejs 运行use命令时报错exit status 1: ��û���㹻��Ȩ��ִ�д˲�����...
这是因为权限不够,将任务管理器使用管理员身份打开即可:
- 运行yum install -y mssql-server命令时报错:
运行yum install -y mssql-server命令时报错:Loaded plugins: fastestmirror File contains no section headers. f ...
- java web的运行方式_在运行 Javaweb项目时报错,不知道什么原因,百度了好多方法跟着人家的方法做了还是报错...
在运行 Javaweb项目时报错,不知道什么原因,百度了好多方法跟着人家的方法做了还是报错 报错信息如下 org.apache.catalina.core.StandardContext loadOn ...
- linux钟java运行命令,在java中运行linux命令
我想在java中运行"ls"命令,我的代码是- 注意: - 我正在使用WINDOWS.在java中运行linux命令 import java.io.IOException; pub ...
- linux下使用find命令时报错“find: paths must precede expression”
问题: linux下使用find命令时报错"find: paths must precede expression" find / -name xxx* 解决办法: 通配符两边加单 ...
- linux怎么卸载webpack,安装webpack后,执行webpack -v命令时报错:SyntaxError: Block-sc
安装webpack后,执行webpack -v命令时报错如下: [root@FreeServer ~]# webpack -v /usr/local/node-v4.4.7-linux-x64/lib ...
最新文章
- [MySQL]快速解决is marked as crashed and should be repaired故障
- Linux下添加DB2用户
- 3-1 Point类的构造函数_JAVA
- erlang md5
- 网站开发之鼠标悬停简单特效实现(四)
- React 深入学习:React 更新队列
- ha 配置ssl_haproxy ssl 配置方式-阿里云开发者社区
- 《Servlet和JSP学习指南》一2.5 小结
- 大数据治理平台有哪些价值
- python中seaborn库_GitHub - a13544835729/python-seaborn: python seaborn库基础用法
- BIGWORLD问题集
- STM32制作flash烧写器 spi flash
- 陪孩子的周日-20220123
- 深圳LED背光源模组十大生产厂家排名是什么呢
- Learning-based Practical Smartphone Eavesdropping with Built-in Accelerometer综述
- 《易经》里的28条法则与64个大智慧
- VMware14安装Ubuntu18.10
- Windows脚本 同网段ip检测与持续ping包测试
- 【SQL注入】手工注入常用语句合集
- 计算机技术考研科目大纲,2017计算机考研大纲:计算机大纲文字完整版