Java 申请哪个 returns 立即提示
Java application which returns a prompt immediately
假设我有一个 class,它有一个如下所示的主要方法和 hoge.hoge()
需要很长时间才能完成。
public static void main(String[] args){
hoge.hoge();
}
此应用程序将从命令行执行。我希望应用程序立即成为后台任务,就像有人执行过一样:
java AboveClass &
即用户应该返回到提示。有什么方法可以在 Java 中实现吗?
不幸的是,不,没有这种方法可以使任务成为后台任务。您可以尝试创建一个线程(并使其成为守护线程),但我认为您会发现,即使您从 main 方法 return 并且线程仍然是 运行ning,程序不会 return 提示。
@Duncan 建议提供一个您的用户可以 运行 的脚本,它会在后台启动 Java 程序。我推荐这种方法。
如果您想要全 Java 解决方案,您可以尝试在 Java 中创建脚本。有关如何从 Java 程序执行命令的信息,请参阅 How to execute system commands (linux/bsd) using Java。因此,您将从 Java 程序中执行 "java ClassName &"。不是最漂亮的解决方案,但它确实有效。当然需要"java"命令在路径中。
假设我有一个 class,它有一个如下所示的主要方法和 hoge.hoge()
需要很长时间才能完成。
public static void main(String[] args){
hoge.hoge();
}
此应用程序将从命令行执行。我希望应用程序立即成为后台任务,就像有人执行过一样:
java AboveClass &
即用户应该返回到提示。有什么方法可以在 Java 中实现吗?
不幸的是,不,没有这种方法可以使任务成为后台任务。您可以尝试创建一个线程(并使其成为守护线程),但我认为您会发现,即使您从 main 方法 return 并且线程仍然是 运行ning,程序不会 return 提示。
@Duncan 建议提供一个您的用户可以 运行 的脚本,它会在后台启动 Java 程序。我推荐这种方法。
如果您想要全 Java 解决方案,您可以尝试在 Java 中创建脚本。有关如何从 Java 程序执行命令的信息,请参阅 How to execute system commands (linux/bsd) using Java。因此,您将从 Java 程序中执行 "java ClassName &"。不是最漂亮的解决方案,但它确实有效。当然需要"java"命令在路径中。