【问题标题】:How to set a system property from a python script to use it in Java code?如何从 python 脚本设置系统属性以在 Java 代码中使用它?
【发布时间】:2012-10-30 14:20:07
【问题描述】:

我想要一个 Java 代码中的字符串,其值在 python 脚本中设置。我可以将它设置为脚本中的系统属性,以便将它与 System.getProperty() 方法一起使用。有没有办法实现这一点或使用其他方法?

【问题讨论】:

  • 您可以使用 Jython 解决问题
  • 根据 java 应用程序的具体任务,将值作为简单的命令行参数传递也可能更合适。

标签: java python properties system


【解决方案1】:

您可以像这样在命令行上设置 Java 属性:

java -D<propertyName1>=<propertyVal1> -D<propertyName2>=<propertyVal2> ...

System.getProperty("propertyName1") 将返回“propertyVal1”。

例子:

java -Dfile.encoding=utf-8 -jar MyJar.jar

这将在 bash 脚本中运行。我从未在 Python 中尝试过,但我想 answer 可能会帮助您实现这一目标。

【讨论】:

    【解决方案2】:

    如果您使用的是 Jython,您可以导入 java.lang.System 类并调用 System.setProperty() 方法来设置您想要设置的任何系统属性:

    代码sn-ps:

    from java.lang import System
    System.setProperty('app.env', 'DEV')
    
    from yourpackage import YourMainClass
    args = ['Your','Args']
    YourMainClass.main(args)

    【讨论】:

      【解决方案3】:

      如果您使用的是 pyspark,您可以使用 SparkContext 的 setSystemProperty() 方法,例如

      import pyspark
      sc=pyspark.SparkContext()
      sc.setSystemProperty("com.amazonaws.services.s3.enableV4", "true")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-23
        • 2011-07-08
        相关资源
        最近更新 更多