当前位置: 首页 > 知识库问答 >
问题:

由于视窗和 Linux 之间的路径结构不同而导致的 JPackage 问题

翁昊乾
2023-03-14

在Windows上,我刚刚将我的应用程序安装程序从Izpack转换为JPackage,由于JPackage创建的结构,我必须进行一些代码更改,以允许我的应用软件查找各种配置文件,基本上,它们在第一次启动时就从app文件夹复制到C:\Users\Username\Appdata……(但比这要复杂一些)。

我现在在Linux上使用JPackage,应用程序将配置文件从应用程序复制到$HOME/. appname。然而,在Windows上,应用程序是相对于启动器的子文件夹,Linux它现在在…/lib/app中,所以代码不起作用

所以我必须做一些特定于linux的更改,但它让我想知道我在这里做了一些非常错误的事情,以便我必须进行这些更改?

共有1个答案

阙阳夏
2023-03-14

加载配置文件的一种方法是使用类加载器:文件与应用程序的其余部分一起打包在jar中,您将它们作为流而不是文件加载:

    Properties properties = new Properties();
    InputStream stream = YourApplication.class.getResourceAsStream("/resources/conf.properties");
    properties.load(stream);

路径(示例)/resources/conf。properties是绑定文件的.jar文件的相对文件,因此它不依赖于安装文件夹。

上面的示例假定您使用的是属性文件,但这适用于可以作为流加载的任何资源。

 类似资料:
  • 我有一个简单的基本AWS架构,我无法使它工作。 CIDR 3个子网: 192.168.0.0/26 192.168.80.0/26 192.168.160.0/26 CIDR: 3个子网: 192.170.0.0/26 192.170.80.0/26 192.170.160.0/26 SSH端口22源代码192.168.0.0/16,这样我就可以从VPC1中的实例ssh < li>SSH端口22源

  • 我正在使用以下软件开发应用程序: jetty maven插件:9.3.2。v20150730 tomcat jdbc:8.0.8(依赖于tomcat juli) 尝试将tomcat jdbc jar升级到8.0.9以外的任何版本后,我遇到以下错误: java.util.服务配置错误:org.apache.juli.logging.日志:提供程序org.eclipse.jetty.apache.js

  • 问题内容: 我有两个加载同一个类的ClassLoader。因此,显然这些不能互相投射。但是我需要访问在其他ClassLoader中创建的对象。 我可以访问两个ClassLoader。如何在其他课程中使用该对象?我不需要强制转换对象以匹配当前的ClassLoader。 但是问题在于返回的对象的类型为。因此,我必须放弃该对象才能访问某些方法。我怎样才能做到这一点?像下面这样的普通类型转换会导致Clas

  • 我有一个Android应用程序,当我运行以下命令时,它的构建失败: 以下是我收到的错误:

  • 问题内容: 在我们的项目中,我们在单独的Maven模块中具有Service和DAO层。服务模块取决于DAO模块,并与它的实体一起使用。问题在于我们不能在DAO实体中放置使用服务层中某些服务的定制jsr 303约束,因为这会创建从DAO层到服务层的反向引用,因为验证器类需要在custom的validatedBy属性中进行引用@约束。 有没有办法(使用标准jsr 303 api)在运行时指定一些自定义

  • 我的目标是开发一个单一的骆驼路线来映射这些服务器,接受路径中服务器的名称。类似于这样: 我的(简化且不起作用)Blueprint.xml: 问题是,我不知道如何从路径中移除/center、/north或/south,因此头部被传递给目标服务,而目标服务不知道如何处理它。调用: