gpt4 book ai didi

java - 从窗口服务运行 jar 应用程序时对 Java 服务包装器的疑问

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

我有一个 jar 应用程序,可以处理文件并将其转换为 csv 文件。我已经使用 Java Service Wrapper 使其在 Windows 服务中运行。当我运行“InstallApp-NT.Bat”文件时,它成功安装了我的 jar 应用程序,并在我运行“app”命令时开始运行我的应用程序。

但是当我尝试在服务中启动该服务时,它没有启动并在对话框中显示以下消息<

Windows could not start the generic Preprocessor application on Local Computer. For more information, review the System Event Log. If this is a non-microsoft service, contact the service vendor, and refer to service-specific error code1
I have the system log file and it showing the below error message
System Event log:
--> Wrapper Started as Service
Java Service Wrapper Community Edition 3.3.2
Copyright (C) 1999-2009 Tanuki Software, Ltd. All Rights Reserved.
http://wrapper.tanukisoftware.org
Launching a JVM...
WrapperManager: Initializing...
WrapperSimpleApp:
WrapperSimpleApp: Encountered an error running main:
WrapperSimpleApp: java. Lang. NullPointerException
WrapperSimpleApp: at java. Util. Hashtable. Put(Hashtable. Java: 396)
WrapperSimpleApp: at java. Util. Properties. SetProperty(Properties. Java: 128)
WrapperSimpleApp: at java. Lang. System. SetProperty(System. Java: 701)
WrapperSimpleApp: at com. Dnb. Genericpreprocessor. Process. ProcessRunner. Main(Unknown Source)
WrapperSimpleApp: at sun. Reflect. NativeMethodAccessorImpl. Invoke0(Native Method)
WrapperSimpleApp: at sun. Reflect. NativeMethodAccessorImpl. Invoke(NativeMethodAccessorImpl. Java: 39)
WrapperSimpleApp: at sun. Reflect. DelegatingMethodAccessorImpl. Invoke(DelegatingMethodAccessorImpl. Java: 25)
WrapperSimpleApp: at java. Lang. Reflect. Method. Invoke(Method. Java: 585)
WrapperSimpleApp: at org. Tanukisoftware. Wrapper. WrapperSimpleApp. Run(WrapperSimpleApp. Java: 238)
WrapperSimpleApp: at java. Lang. Thread. Run(Thread. Java: 595)
<-- Wrapper Stopped

我认为应用程序代码中没有任何错误,因为它在运行“app”命令时运行良好。请帮助我现在应该做什么。提前致谢。

<小时/>

我在 com.dnb.genericpreprocessor.process.ProcessRunner 类中使用以下代码。

String projectHome = "D:\BL";
System.setProperty("project.home", projectHome);
System.setProperty("log.home",System.getenv("DBE")); ---> DBE is the envirinment variable I created in user variables.

当我通过给出应用程序命令来运行应用程序时...它通过打印环境值来运行应用程序,但当我在服务中启动它时显示相同的错误。

最佳答案

回答您的question update作为答案,您需要确保该变量实际上是在运行应用程序的特定环境中设置的。看来事实并非如此。事实上,为了避免 NullPointerException,我会将您的代码修改为:

String loghome = System.getenv("DBE");
if (loghome == null) {
// LOG A COMPLAINT that the environment variable is not set
loghome = "some reasonable default value";
}
System.setProperty("log.home", loghome);

因此,如果您的应用程序在错误的环境中执行,至少不会因迟钝的 NPE 而失败。

关于java - 从窗口服务运行 jar 应用程序时对 Java 服务包装器的疑问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/536211/

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