Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行jar应用程序fom窗口服务时Java服务包装中存在疑问_Java - Fatal编程技术网

运行jar应用程序fom窗口服务时Java服务包装中存在疑问

运行jar应用程序fom窗口服务时Java服务包装中存在疑问,java,Java,我有一个jar应用程序,可以处理文件并将其转换为csv文件。我已经使用Java服务包装器在windows服务中运行了它。当我运行“InstallApp NT.Bat”文件时,它成功地安装了我的jar应用程序,当我运行“app”命令时,它开始运行我的应用程序 但是,当我尝试在services中启动服务时,它不会启动并在对话框中显示以下消息检查com.dnb.genericprocessor.process.ProcessRunner(如果是您的代码),并查看您在System property中设置

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


但是,当我尝试在services中启动服务时,它不会启动并在对话框中显示以下消息检查com.dnb.genericprocessor.process.ProcessRunner(如果是您的代码),并查看您在System property中设置的数据。空指针告诉您传递的键或值为空。

检查wrapper.config;您需要将所有必要的jar按顺序排列,并且每个jar都有自己的索引号(出于某种原因):

wrapper.java.classpath.1=../lib/wrapper.jar

wrapper.java.classpath.2=%java\u HOME%/lib/tools.jar


只是第一个想法。

我不熟悉您使用的专有解决方案,但您似乎在某种程度上配置了错误的解决方案

看起来包装器应该具有的某些参数为null,并且一直在传播,直到系统尝试将其设置为属性。

如果回答您的问题,您需要确保该变量实际上是在运行应用程序的特定环境中设置的。看来并非如此。事实上,为了避免出现
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而失败。

也许您应该将“DBE”环境放在系统变量而不是用户变量中。
Windows服务从系统帐户启动。

嗨,罗伯特:
我有一个check wrapper.config文件。。所有的jar都只给出了正确的索引号,这是因为我在代码中使用了“System.getenv()”方法。当我们启动窗口服务时,它不会在运行时获取用户变量的值,这是因为我在代码中使用了“System.getenv()”方法。当我们启动窗口服务时,它在运行时未获取用户变量的值。您的服务正在使用哪个帐户运行?在定义该变量后,您是否重新启动了系统?最后尝试将该变量定义为系统级变量。
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.
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);