Java代码退出而不返回调用脚本

Java代码退出而不返回调用脚本,java,exit,aix,Java,Exit,Aix,我们正在尝试诊断在AIX6系统上运行的Java代码(JRE7)出现问题的原因。高级概述是SCRIPTA.sh执行java,传递类MyJava1。脚本包含以下内容: exec 1>/our/log/file exec 2>&1 echo "Java tool execution began at $(date '+%Y-%m-%d %T')" /path/to/java -cp $CLASSPATH:support_stuff.jar the_tool > $TEMPFI

我们正在尝试诊断在AIX6系统上运行的Java代码(JRE7)出现问题的原因。高级概述是SCRIPTA.sh执行java,传递类MyJava1。脚本包含以下内容:

exec 1>/our/log/file
exec 2>&1
echo "Java tool execution began at $(date '+%Y-%m-%d %T')"
/path/to/java -cp $CLASSPATH:support_stuff.jar the_tool > $TEMPFILE 2>&1
echo "Java tool execution ended at $(date '+%Y-%m-%d %T')"
...
该过程运行约30秒,然后返回,在此之后,我们的日志文件包含消息“Java工具执行已开始…”,之后什么也没有。值得注意的是,“JavaToolExecutionEnded”消息从未写入日志,之后的其他代码也没有执行

既然如此,我们在Java源代码中寻找什么可能导致如此灾难性的退出呢


谢谢

请发布有问题的java代码。该代码是专有的、复杂的,涉及大量的类和jar文件。它实际上是一个Oracle的云“上传工具”,可能有也可能没有定制(看起来我继承了它,但细节还很粗略)。因此,不幸的是,我现在必须保持高水平和一般性的讨论。包含源代码的文件夹是巨大的,作为一个起点,我正在寻找我可能会“grep”的东西,以确定潜在的领域。由于java不返回调用方是不寻常的,所以希望这是一个好的起点。java不是一个总是存在的命令行工具。这取决于它是如何设计的。那么你是如何验证出口的?您是否尝试在命令行中手动启动它?至于我是如何验证它是否退出的:执行它的脚本(从进程调度器运行)结束,并且它的进程不再显示在进程列表中。