首页 > 系统相关 >Jenkins 的 Shell 命令中执行一个 JAR 包时,日志没有显示,如何禁用输出缓冲

Jenkins 的 Shell 命令中执行一个 JAR 包时,日志没有显示,如何禁用输出缓冲

时间:2024-08-09 13:27:07浏览次数:10  
标签:输出 Shell jar JAR 命令 缓冲 output 包时

在 Jenkins 的 Shell 命令中执行 JAR 包时,如果日志没有显示且你想禁用输出缓冲,可以尝试使用以下方法之一来禁用输出缓冲:

1.使用 stdbuf 命令

stdbuf 是用于修改标准 I/O 缓冲机制的命令,可以用来调整输出的缓冲方式。你可以尝试使用 stdbuf 命令来禁用输出缓冲,例如:

stdbuf -o0 -e0 java -jar your_jar_file.jar

#在这里,-o0 和 -e0 参数将标准输出和标准错误的缓冲大小设置为 0,以便实时显示输出。

 

2.使用 unbuffer 命令

unbuffer 命令是 expect 工具包中的一个命令,可以用于禁用输出缓冲。你可以尝试使用 unbuffer 命令来执行 JAR 文件,例如:

unbuffer java -jar your_jar_file.jar

 

3.使用 -D 参数

在执行 Java 命令时,可以添加 -D 参数来设置 Java 系统属性,例如:

java -Dsun.java2d.d3d=false -jar your_jar_file.jar

 

4.查看日志文件

如果仍然无法显示输出,可以尝试将 Java 程序的输出重定向到文件,然后查看文件内容,以确定是否有输出。例如:

java -jar your_jar_file.jar > output.log 2>&1

#让我们逐步解释这个命令:
  • java -jar xx.jar: 这部分是在运行一个 Java 可执行 JAR 文件,xx.jar 是你要运行的 Java 可执行 JAR 文件的名称。

  • >: 这个符号是输出重定向符号,它将命令的输出重定向到指定文件。

  • output.log: 这是要将输出重定向到的文件名,即将命令的标准输出重定向到 output.log 文件中。

  • 2>&1: 这部分是将标准错误流(stderr)重定向到标准输出流(stdout)的意思。数字 2 表示标准错误流,> 表示重定向,&1 表示标准输出流。这样做的目的是将标准错误流的输出也重定向到与标准输出流相同的位置,即 output.log 文件中。


因此,整个命令 java -jar xx.jar > output.log 2>&1 的作用是运行 Java 可执行 JAR 文件并将标准输出和标准错误流都重定向到 output.log 文件中,这样你可以在 output.log 文件中同时查看标准输出和标准错误的输出内容。



 

 

尝试以上方法中的任何一种,可以让你禁用输出缓冲,以便在 Jenkins 的 Shell 命令中执行 JAR 包时可以实时显示日志输出。如果问题仍然存在,请确保检查其他可能影响输出显示的因素。

标签:输出,Shell,jar,JAR,命令,缓冲,output,包时
From: https://www.cnblogs.com/pingguomang/p/18350604

相关文章

  • jenkins的shell command中如何让python 实时显示执行日志
    在使用Jenkins的shellcommand里面执行python脚本时,我们希望在构建shell脚本时可以实时输出日志,但是在构建python脚本时,是等到python执行完成以后,才显示结果,这个对于我们判断脚本执行状态非常不友好。而之所以会出现这种情况,是因为python默认是有缓存的,所以我们需要禁用输入......
  • 常见 反弹shell的方法
            在渗透测试的过程中,在拿到webshell以后,如果目标主机是Windows主机,则是通过开3389端口在远程连接,如果目标主机是linux服务器,一般我们都会选择反弹shell来进行操作。在这里总结下反弹shell常见的几种姿势。Bash反弹1.1方法一攻击者主机上执行监听:nc-lvvp......
  • 通过phpmyadmin拿webshell
    免责声明        文章所涉及内容,仅供安全研究与教学之用,由于传播、利用本文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何法律及连带责任。前提知道root密码,phpmyadmin的root权限步骤设置mysql日志的路径和开关(需要高权......
  • Jar包
    jar包创建和使用JAR包的基本步骤如下:创建JAR包:使用Java的jar工具或IDE(如Eclipse、IntelliJIDEA)将编译后的.class文件和其他资源打包成JAR文件。jarcvfmyapp.jar-Cbin/.添加清单文件:在创建JAR包时,可以指定一个清单文件,以包含额外的元数据。jarcvfmmyapp.jarmani......
  • 远程终端 XShell 下载安装配置使用(超详细)
    今天给伙伴们分享一下VMwareWorkstation17安装Windows10操作系统,希望看了有所收获。我是公众号「想吃西红柿」「云原生运维实战派」作者,对云原生运维感兴趣,也保持时刻学习,后续会分享工作中用到的运维技术,在运维的路上得到支持和共同进步!如果伙伴们看了文档觉得有用,......
  • 如何在python中使用jdbc jar文件连接informix数据库
    有什么想法如何使用jdbcjar文件连接到informix数据库吗?在python我尝试了jaydebeapi,当我执行时:conn=jaydebeapi.connect('com.informix.jdbc.IfxDriver',myurl,['user','pass'],jdbc_driver_path)...然后从表中选择数据的其余代码当我执行myscript.py它只......
  • maven打jar包运行main方法
    pom文件添加上这段<build><plugins><plugin><artifactId>maven-assembly-plugin</artifactId><configuration><appendAssemblyId>false</appendAssem......
  • 实际上手体验maven面对冲突Jar包的加载规则
    一、问题背景相信大家在日常的开发过程中都遇到过Jar包冲突的问题,emm,在最近处理业务需求时我也遇到了不同版本jar包冲突导致项目加载出错的问题。主要是一个完整的项目会不可避免的使用第三方的Jar包来实现功能开发,各种第三方包之间可能会存在依赖关系,不同版本的依赖就会可能导......
  • 使用xshell连接阿里云远程服务器(图文教程)
     1.参考资料:阿里云官方帮助资料: https://help.aliyun.com/document_detail/71529.html?spm=a2c4g.11186623.6.616.JqUSgl2.准备条件:   1).登录阿里云官网,申请阿里云ECS服务器       请参考网上其他教程,或者自己申请一下就好。   2).下载Xshell客户......
  • Linux shell脚本案例:使用正则表达式匹配目录并定时删除日期早于当前系统日期的所有目
    实现每周三和每周日执行清理/NFS目录的任务,你可以使用shell脚本结合cron定时任务。下面是一个示例脚本,它会删除/NFS目录下所有名称形如XBK_FULL_YYYYMMDDHHMMSS和XBK_INCR_YYYYMMDDHHMMSS的目录,其中日期早于当前系统日期。步骤1:创建Shell脚本创建脚本......