可以使用 Java 程序的退出代码来检测磁盘空间不足的异常吗?

2023-12-29

我的 Java 程序是从 Windows 脚本调用的。

是否可以使用 Java 退出代码来确定 Java 程序是否因磁盘空间不足而提前终止,同时它仍在从 JAR 文件加载类文件?

我尝试了内存不足异常,它返回退出代码 1,但磁盘空间不足返回退出代码 0。这是正确的行为吗?

子类方法:

public int executeBatch() {
        logger.info("executeBatch() - Send Email Alert Start");
        try {
            alertTransactionMgr.sendEmailAlert();
        } catch (Exception e) {
            throw new Exception(e);
        }
        logger.info("executeBatch() - Send Email Alert End");
        return 0;
    } 

父方法:

public int execute() {

        this.trx = createTransaction();

        try {
            returnCode = executeBatch();

        } catch (Exception e) {
            printLogErrorMsg("Job Failed caused by the Exception.", e);
            returnCode = -1;
            trx.setStatus("Failure");
            updateBatchTransaction(trx);

        }
        return returnCode;
    }

Windows 批处理脚本

@echo off

set ERRLVL=0

java -cp %CLASSPATH% com.test.runner.MainBatchRunner
if not (%ERRORLEVEL%)==() (
    set ERRLVL=%ERRORLEVEL%
)

echo Delete Files that are more than 30 old
forfiles /p "%BATCH_LOG_DIR%" /s /m %2*.log /d -%ARCHIVE_DAYS% /c "cmd /c echo del %BATCH_LOG_DIR%\@file"
forfiles /p "%BATCH_LOG_DIR%" /s /m %2*.log /d -%ARCHIVE_DAYS% /c "cmd /c del %BATCH_LOG_DIR%\@file"

echo Program exit %ERRLVL%
echo Program exit %ERRLVL% >> %BATCH_LOG_FILE%

exit /B %ERRLVL%

内存不足的输出: [信息][2015-06-29 18:05:01,960][org.springframework.context.support.ClassPathXmlApplicationContext] - 刷新 org.springframework.context.support.ClassPathXmlApplicationContext@4b222f:显示名称 [org.springframework.context.support .ClassPathXmlApplicationContext@4b222f];启动日期 [2015 年 6 月 29 日星期一 18:05:01 SGT];上下文层次结构的根 [INFO ][2015-06-29 18:05:02,050][org.springframework.beans.factory.xml.XmlBeanDefinitionReader] - 从文件加载 XML bean 定义 [D:\batch\dev\batch_home\bin\spring\applicationContext -测试.xml]

删除超过 30 个的旧文件

del D:\batch\dev\batch_home\log\"TEST_20150629_173016.log" 程序出口1

磁盘空间不足的输出: [信息][2015-06-29 19:05:01,960][org.springframework.context.support.ClassPathXmlApplicationContext] - 刷新 org.springframework.context.support.ClassPathXmlApplicationContext@4b222f:显示名称 [org.springframework.context.support .ClassPathXmlApplicationContext@4b222f];启动日期 [2015 年 6 月 29 日星期一 19:05:01 SGT];上下文层次结构的根 [INFO ][2015-06-29 19:05:02,050][org.springframework.beans.factory.xml.XmlBeanDefinitionReader] - 从文件加载 XML bean 定义 [D:\batch\dev\batch_home\bin\spring\applicationContext -测试.xml]

删除超过 30 个的旧文件

del D:\batch\dev\batch_home\log\"TEST1_20150629_180030.log" 程序出口0


您的批处理文件已损坏。 ERRORLEVEL 永远不会为空,它总是有一个数字,除非你做了一些愚蠢的事情,比如将它设置为一个字符串。

@echo off

set ERRLVL=0

java -cp %CLASSPATH% com.test.runner.MainBatchRunner
@rem if not (%ERRORLEVEL%)==() (
@rem    set ERRLVL=%ERRORLEVEL%
@rem)
if %ERRORLEVEL% != 0 set ERRLVL=%ERRORLEVEL%

echo Delete Files that are more than 30 old
forfiles /p "%BATCH_LOG_DIR%" /s /m %2*.log /d -%ARCHIVE_DAYS% /c "cmd /c echo del %BATCH_LOG_DIR%\@file"
forfiles /p "%BATCH_LOG_DIR%" /s /m %2*.log /d -%ARCHIVE_DAYS% /c "cmd /c del %BATCH_LOG_DIR%\@file"

echo Program exit %ERRLVL%
echo Program exit %ERRLVL% >> %BATCH_LOG_FILE%

exit /B %ERRLVL%
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

可以使用 Java 程序的退出代码来检测磁盘空间不足的异常吗? 的相关文章

随机推荐

  • 使用sql查询总结时间列

    我有一张表如下 repID ClockIn ClockOut TotalHours 109145 7 50 50 AM 3 37 16 PM 7 46 26 109145 7 52 41 AM 3 44 51 PM 7 52 10 1091
  • C# 禁用 USB ReadPipe 的垃圾收集

    我正在尝试使用 FTDI 的 D3XX NET 从 USB 端口收集数据 收集数据 然后发送到快速傅立叶变换以绘制频谱 即使您丢失了一些数据 这也可以正常工作 你说不出来 但是 如果您随后想要将此数据发送到音频输出组件 您会发现数据丢失 这
  • 如何根据传入远程通知负载中定义的类别添加不同的操作?斯威夫特更新

    我正在我的两个相关应用程序中实现推送通知 到目前为止我能够发送通知 设备到设备以及主题 收到通知后 通知会显示随有效负载发送的 url 处的图像 我的目标是向主题通知添加操作 并且每个主题的操作都不同 Ej 行动为 shop promoti
  • 在 C# 中添加十六进制值

    在我的系统中 我需要添加 2 个十六进制值 那么 如何在 C 中添加十六进制值 我还想知道十六进制值的最大长度以及哪个实例保存这些值 C 支持十六进制文字 http msdn microsoft com en us library aa66
  • Haskell 中的惰性笛卡尔积

    我想在 Haskell 中生成一个相当大但有限的笛卡尔积 然后我需要对其进行迭代 想想平均场模型的配分函数 自然而然的事情使用sequence 像这样 l sequence replicate n 0 1 2 不幸的是 对于大n 这不适合内
  • 如何创建 android:pathData?

    所以我需要在我的应用程序中使用路径数据 有没有办法将已有的图像转换为路径数据 或者唯一的方法是使用 Photoshop 等实际计算所有像素 矢量图像android中的PathData是矢量图形程序的脚本 它并不是完全干净且人类可读的代码作为
  • 无法创建 yeoman web 应用程序

    当我尝试创建一个网络应用程序时 我得到了这个yeoman usr local lib node modules yo node modules insight node modules configstore configstore js
  • 为什么这段C代码可以编译?

    include
  • 在 Logback 中创建自定义布局

    我正在尝试在 logback 中创建自定义布局 如示例中所示手册第 6 章 http logback qos ch xref chapters layouts MySampleLayout html package com dces uti
  • 在 Rails 4 中创建到外部 URL 的 Rails 路由

    我有一堆路由 50 需要映射到外部 URL 我绝对可以按照建议做here https stackoverflow com questions 3622706 creating a rails route to an external url
  • Fortran 77 注释的语法突出显示在 vim 中不起作用

    我有一段用 Fortran 77 编写的代码 我用 vim 读取它 编写代码时 注释位于以c 这是 Fortran 77 中的标准 但是 vim 无法识别它们 因此使用着色语法 这使得代码非常难以阅读 我怎样才能克服这个问题 我看到有一个发
  • 在java中查找字符串中字符频率的有效方法:O(n)

    在最近的一次采访中 我被要求编写以下程序 找出给定字符串中频率最小的字符 因此 我尝试使用 charAt 迭代字符串 并将字符存储为 HashMap 中的键 并将出现次数作为其值 现在我必须再次迭代 Map 才能找到最低的元素 有没有一种更
  • 如何创建具有基本身份验证的 ASP.NET 网页

    我想创建 ASP NET 网页 该网页将提示我弹出基本身份验证窗口 我将在其中输入凭据 我尝试在 PreInit 和 PreLoad 事件处理程序中添加以下代码行 但它仍然没有显示基本身份验证弹出窗口 protected override
  • SQLNonTransientConnectionException 在 Eclipse 中连接 MySQL

    我正在尝试编写代码 使用 Eclipse MySQL Workbench 和 JDBC 8 0 11 将文本文件的数据导入数据库 它给了我一个 ClassNotFoundException 我已经查看了多个其他问题 并且通过将 java c
  • MassTransit Consumer 中的异常冒泡导致 Windows 服务崩溃

    我使用 AutoFac 设置了一个包含 2 个消费者的 Windows 服务 在一条快乐的道路上 这确实非常有效 我的印象是大众交通为我处理了例外情况 正如文档所述 http docs masstransit project com en
  • 使用报表查看器在运行时将未知数量的图像插入到报表中

    我正在使用reportviewer 我想在运行时向报告中添加未知数量的图像 用户应该选择一些图像 在另一个地方 这些图像应该一个接一个地显示在报告中 您知道如何使用报表查看器来做到这一点吗 谢谢 奥菲尔 有很多方法可以做到这一点 这是一种可
  • 头文件在代码块中工作吗?

    延迟函数为dos h头文件在代码块中不起作用 它表明延迟函数未声明 以下链接包含以下程序 link http www programmingsimplified com c dos h delay int main printf This
  • 寻找有界子图之间的最小割集

    如果游戏地图被划分为子图 如何最小化子图之间的边 我有一个问题 我试图通过基于网格的游戏 如 pacman 或 sokoban 进行 A 搜索 但我需要找到 外壳 外壳是什么意思 子图尽可能少切边 http en wikipedia org
  • 查找嵌入式 Linux 系统中的延迟问题(停顿)

    我有一个在 Atmel AT91SAM9260EK 板上运行的嵌入式 Linux 系统 其中有两个进程以实时优先级运行 管理器进程使用 POSIX 消息队列定期 ping 工作进程 以检查工作进程的运行状况 通常 往返 ping 需要大约
  • 可以使用 Java 程序的退出代码来检测磁盘空间不足的异常吗?

    我的 Java 程序是从 Windows 脚本调用的 是否可以使用 Java 退出代码来确定 Java 程序是否因磁盘空间不足而提前终止 同时它仍在从 JAR 文件加载类文件 我尝试了内存不足异常 它返回退出代码 1 但磁盘空间不足返回退出