java - 另一个 Java 类路径问题

标签 java classpath

我使用 Maven 阴影插件来构建可执行 jar,当它在构建中包含属性时,它可以正常工作。

但是当我尝试将属性移出到单独的文件夹时,失败并显示 java.io.FileNotFoundException: class path resource [app.properties] cannot be opened because it does not exist

我尝试了以下三种方法,但均失败:

  1. java -cp "properties" (或".\*;properties\*")-jar app.jar
  2. SET CLASSPATH =.\*;properties\*
  3. 甚至将 app.properties 放在与 app.jar 相同的路径中

正如你所看到的路径分隔符,我使用 Windows 来运行 jar。

[更新]

我更改了阴影配置(从 <mainClass> 更改为 <manifestEntries> ),如下所示,它解决了问题。

<transformer
        implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
    <manifestEntries>
        <Main-Class>com.lifeshield.reminder.App</Main-Class>
        <Class-Path>properties/</Class-Path>
        <Build-Number>0.1</Build-Number>
    </manifestEntries>
</transformer>

@Marko Živanović,感谢您指出-cp-jar用法。

最佳答案

您不能同时使用 -cp-jar 选项。

如果您使用-jar,那么您已经在 list 文件中设置了类路径。 More details .

如果您想使用-cp,那么您必须通过指定类名来运行应用程序。 Details .

关于java - 另一个 Java 类路径问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29032835/

相关文章:

java - 将两个 TokenStream 流添加在一起(ASCIIFoldingFilter 案例)

java - 不熟悉的增强 for 循环语法

java - 源文件夹不在 Java 构建类路径上,正在创建 Java 包

Java 不从 list 定义的类路径加载类

运行包含库 jar 的 jar 时出现 Java NoClassDefFoundError

java - 如何在android中使用契约(Contract)类?

java - Android Studio 和 java 编译器没有 SDK 常量

java - 服务背景

java - 如何清除错误_JAVA_OPTIONS : -Xmx512M?

eclipse : Project properties don't show Build Path