我试图在linux中从systemd服务启动一个jar。我正在执行的jar假设在当前目录中有一个xml文件。我正在传递该文件的名称,并带有-config参数。我创建的示例服务如下:
<代码>[单元]描述=我的服务后=网络。目标
[服务]Type=simple-Environment=“xml\u file\u name=sample.xml”ExecStart=/usr/bin/java-jar/path/to/jar/myapp。jar-config${xml\u file\u name}
上面的服务文件位于/usr/lib/systemd/system目录中,称为myservice。服务我正在执行以下命令来启动它:
systemctl守护程序重新加载systemctl stop myservice。服务系统CTL启动myservice。服务系统CTL状态myservice。服务
系统CTL状态myservice。service命令显示jar文件已经运行,但我的应用程序说它找不到${xml\u file\u name}。
此外,我的jar声明它是从/目录执行的。我相信这是问题的一部分,因为${xml_file_name}只适用于 /path/to/jar/目录。
尝试的内容:
>
将/路径/更改为/jar/以确保其已启用所有可能的权限
我尝试在我的systemd服务的[Service]
部分下添加User=root
,但没有更改。无论哪种方式,机器上只有root用户,并且权限似乎都已签出。
更奇怪的是,如果我将cd刻录到/,然后手动执行:
/usr/bin/java-jar /path/to/jar/myapp.jar-configsample.xml
一切都很好。
有什么明显的东西我在这里遗漏了吗?是否可以告诉systemd服务,执行这个java jar,但要确保工作路径是相对于代码而不是路径到jar?
为了解决这个问题,我最终在[Service]
部分下使用了以下属性:
<代码>[服务]。。。WorkingDirectory=/path/to/jar ExecStart=/usr/bin/java-jar my。jar-配置示例。xml
解决了问题!
当我尝试执行时,执行这一行 我从我的Lib文件夹中得到一个错误,说其中一个罐子不能正常工作。 我不知道jar文件是否有问题,因为它在Windows中运行良好,但在linux中不起作用。 这是我的. sh文件: 我刚把我在网上找到的东西抄了下来,因为我有一个朋友。bat文件从我使用Windows开始,从Windows到linux的传输是否要求我对jar文件做些什么?
Android Studio是完美的工作,但当我执行jar文件 但jar文件在这种情况下无法执行,这是出了什么问题。有什么建议吗
问题内容: 一直在玩cython。通常使用Python进行编程,但前世曾使用C。我不知道如何制作一个独立的可执行文件。 我已经下载了cython,并可以创建一个.pyx文件(这是一个带有.pyx扩展名的普通Python文件),可以使用以下命令在Python Shell中执行:import pyximport; pyximport.install() 我可以使用以下命令在命令行中生成.c文件:cyt
问题内容: 我有一个包含两个简单的Java swing文件的程序。 如何为程序制作可执行的jar文件? 问题答案: jar文件只是包含Java文件集合的文件。为了使jar文件可执行,你需要指定 Class在jar文件中的位置。示例代码如下。 编译你的类。要制作一个jar,你还需要创建一个清单文件()。例如, 将编译后的输出类文件(JarExample.class,JarExample $ 1.cl
是否有可能为Spring Boot可执行JAR设置工作目录? 这没有帮助。
null 这里出了什么问题。