后台java进程未退出

后台java进程未退出,java,linux,process,background,Java,Linux,Process,Background,我正在用java what.ever.Class&在后台启动一个java程序。它在第一行抛出异常并打印出堆栈 我希望java进程在那个时候退出,但出于某种原因,它会在那里等待(没有代码运行,没有线程生成,等等)。它不是僵尸,因为它在第一个学期就正常存在。它没有立即退出的原因可能是什么 增加: 事实上,这并不是每次都会发生。如果我从命令行运行命令,它会很好地退出。如果从脚本运行相同的命令(脚本只是#!/bin/sh/java what.ever.Class&),则它将保留在后台 nohup和重定向

我正在用
java what.ever.Class&
在后台启动一个java程序。它在第一行抛出异常并打印出堆栈

我希望java进程在那个时候退出,但出于某种原因,它会在那里等待(没有代码运行,没有线程生成,等等)。它不是僵尸,因为它在第一个学期就正常存在。它没有立即退出的原因可能是什么

增加:

事实上,这并不是每次都会发生。如果我从命令行运行命令,它会很好地退出。如果从脚本运行相同的命令(脚本只是
#!/bin/sh
/
java what.ever.Class&
),则它将保留在后台

nohup和重定向不起作用


使用Debian,OpenJDK运行时环境(IcedTea6 1.6.1)(6b16-1.6.1-2)/OpenJDK 64位服务器虚拟机(构建14.0-b16,混合模式)。sh实际上是破折号。

您能检查它是否处于停止状态,等待输入或输出吗

如果是,则尝试重定向不需要的输入、输出和错误:

java what.ever.Class </dev/null &>/dev/null &
java what.ever.Class </dev/null &>outputfile &

我们应该在没有看到
what.ever.Class
的情况下进行猜测吗?我不建议使用
Class
作为类名:-P@skaffman-是的,因为这不重要-我说它在第一行抛出一个异常
main(){throw new Exception();}
如果您确实需要它;)也许你应该告诉我你使用的是哪个Java版本和操作系统?@jarnbjo-现在把这些信息添加到了问题中。不幸的是,它们都不起作用。我在问题中添加了更多信息。@viraptor:为了确保它不是Java实现,您能在另一个Java实现上再试一次吗?
nohup java what.ever.Class </dev/null &