gpt4 book ai didi

java - 如何启动控制台并从 Windows 服务中读取输出或模拟它?

转载 作者:行者123 更新时间:2023-12-01 11:13:19 25 4
gpt4 key购买 nike

我有一些在我的 c# 控制台应用程序中使用的 jar 文件(通过 System.Diagnostics.Process 启动它们)并根据我的目的读取控制台输出。

现在我需要将此控制台应用程序更改为 Windows 服务。

m_process = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = "java.exe",
Arguments = arguments,
UseShellExecute = false,
LoadUserProfile = false,
RedirectStandardOutput = true,
RedirectStandardError = true,
}
};

m_process.Start();
m_process.BeginOutputReadLine();
m_process.BeginErrorReadLine();
m_process.WaitForExit();
m_process.Close();
m_process.Dispose();

m_process.OutputDataReceived += ProcessOutputDataReceived;
m_process.ErrorDataReceived += ProcessErrorDataReceived;

jar 文件通过控制台输出为我提供满足我需要的信息。它可以在控制台应用程序中运行,但服务不会启动任何控制台,因此我无法读取输出。

我了解到我无法在 Windows 服务中启动控制台。但我正在寻找任何其他方式来启动我的 jar 文件并从中读取输出。

最佳答案

Windows 服务是一项后台作业。它没有控制台。

请记住,该服务在 Windows 启动后立即运行。这意味着它甚至在用户登录之前就运行。甚至没有用户可以向其显示控制台,即使您神奇地能够打开控制台。

在服务器上,根本不连接监视器是很常见的。谁会看到你的输出?

解决方案

如果您想从后台程序生成输出,请将其写入日志文件。

关于java - 如何启动控制台并从 Windows 服务中读取输出或模拟它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32122948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com