项目场景:

项目相关背景:

项目使用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命令时报错相关推荐

  1. java运行linux命令程序_Java程序执行Linux命令

    java程序中要执行linux命令主要依赖2个类:Process和Runtime 首先看一下Process类: ProcessBuilder.start() 和 Runtime.exec 方法创建一个 ...

  2. nvm安装nodejs 运行use命令时报错exit status 1: ��û���㹻��Ȩ��ִ�д˲�����

    错误提示:exit status 1: ��û���㹻��Ȩ��ִ�д˲����� 换目录重新安装多次都没用 猜测应该是权限问题 遂将cmd以管理员身份运行 ok问题解决

  3. IDEA 运行maven命令时报错: -Dmaven.multiModuleProjectDirectory system propery is not set

    在file-setting里面,找到maven的设置: 先加入一个环境变量 然后配置一个JVM的参数: -Dmaven.multiModuleProjectDirectory=$M2_HOME OK ...

  4. nvm安装nodejs 运行use命令时报错exit status 1: ��û���㹻��Ȩ��ִ�д˲�����...

    这是因为权限不够,将任务管理器使用管理员身份打开即可:

  5. 运行yum install -y mssql-server命令时报错:

    运行yum install -y mssql-server命令时报错:Loaded plugins: fastestmirror File contains no section headers. f ...

  6. java web的运行方式_在运行 Javaweb项目时报错,不知道什么原因,百度了好多方法跟着人家的方法做了还是报错...

    在运行 Javaweb项目时报错,不知道什么原因,百度了好多方法跟着人家的方法做了还是报错 报错信息如下 org.apache.catalina.core.StandardContext loadOn ...

  7. linux钟java运行命令,在java中运行linux命令

    我想在java中运行"ls"命令,我的代码是- 注意: - 我正在使用WINDOWS.在java中运行linux命令 import java.io.IOException; pub ...

  8. linux下使用find命令时报错“find: paths must precede expression”

    问题: linux下使用find命令时报错"find: paths must precede expression" find / -name xxx* 解决办法: 通配符两边加单 ...

  9. linux怎么卸载webpack,安装webpack后,执行webpack -v命令时报错:SyntaxError: Block-sc

    安装webpack后,执行webpack -v命令时报错如下: [root@FreeServer ~]# webpack -v /usr/local/node-v4.4.7-linux-x64/lib ...

最新文章

  1. [MySQL]快速解决is marked as crashed and should be repaired故障
  2. Linux下添加DB2用户
  3. 3-1 Point类的构造函数_JAVA
  4. erlang md5
  5. 网站开发之鼠标悬停简单特效实现(四)
  6. React 深入学习:React 更新队列
  7. ha 配置ssl_haproxy ssl 配置方式-阿里云开发者社区
  8. 《Servlet和JSP学习指南》一2.5 小结
  9. 大数据治理平台有哪些价值
  10. python中seaborn库_GitHub - a13544835729/python-seaborn: python seaborn库基础用法
  11. BIGWORLD问题集
  12. STM32制作flash烧写器 spi flash
  13. 陪孩子的周日-20220123
  14. 深圳LED背光源模组十大生产厂家排名是什么呢
  15. Learning-based Practical Smartphone Eavesdropping with Built-in Accelerometer综述
  16. 《易经》里的28条法则与64个大智慧
  17. VMware14安装Ubuntu18.10
  18. Windows脚本 同网段ip检测与持续ping包测试
  19. 【SQL注入】手工注入常用语句合集
  20. 计算机技术考研科目大纲,2017计算机考研大纲:计算机大纲文字完整版

热门文章

  1. Android 项目开发 基于Web Service 服务的中英翻译软件(三) Web Service服务 Ksoap2 项目...
  2. spring + cxf
  3. 惠普HP Designjet 500 打印机驱动
  4. 人不可有傲气,但不可无傲骨。
  5. 思科为合作伙伴创造新机遇
  6. Mac 窗口管理软件 Spectacle
  7. 初试STM32基于Arduino的使用
  8. suse 12 sp3安装oracle11gr2
  9. PS给人像照片添加超酷光效GIF动画
  10. SMC ITV电气比例阀怎么选 (未完待续)