【问题标题】:Difference between System.setProperty in Java code and <sysproperty/> or <jvmargs> in ant xmlJava 代码中的 System.setProperty 与 ant xml 中的 <sysproperty/> 或 <jvmargs> 之间的区别
【发布时间】:2018-01-13 10:44:41
【问题描述】:

如果我在 Java 程序代码中设置该属性,它可以工作:

try {
        System.setProperty("javax.net.ssl.trustStore", "/home/ylinghao/AllocationAnomaliesDetection/env/AllocationAnomaliesDetection-1.0/runtime/certs/InternalTrustStore.jks");
        System.setProperty("javax.net.ssl.trustStorePassword", "password");
    } catch (Exception e) {
        System.out.println("Failed to specify keystore for issue" + e);
    }

但如果我尝试在 ant 的 build.xml 中设置 &lt;jvmarg&gt;&lt;systproperty&gt; 中的属性,它会失败。谁能告诉我有什么区别?谢谢!

【问题讨论】:

  • 显示你的构建文件
  • 您是在使用 ant xml 来运行您的应用程序还是构建您的应用程序?如果是后者,通常是这样,那么答案就是:无论你放什么都不会影响你的应用程序的执行。
  • @albert_nil 它的构建。

标签: java xml ant build jvm-arguments


【解决方案1】:

您的问题是在您的蚂蚁上您正在构建您的应用程序。因此,您正在配置的 jvm settigns 用于执行 ant 本身(或您使用的任何辅助 Java 进程,例如,用于编译代码)。

因此,在您的 ant 中,您不会影响程序的执行,这是在您启动时在另一个 java 进程中完成的。

【讨论】:

    【解决方案2】:

    我在这里引用文档站点:

    使用嵌套元素来指定类所需的系统属性。这些属性将在类执行期间对 VM 可用(ANT 的 VM 或分叉的 VM)。此元素的属性与环境变量的属性相同。

    您需要拥有fork="true" 才能具有jvmargsysproperty 的效果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-15
      相关资源
      最近更新 更多