java编程相当于maven run中配置的环境值

igetnqfo  于 2021-07-09  发布在  Java
关注(0)|答案(3)|浏览(260)

我有一个javamaven项目,其中一个库jar依赖于配置的环境变量,因此为了在eclipse中运行它,我在maven run build的environment选项卡中创建了这个变量(参见屏幕截图)。现在我必须打包并将这个swing应用程序导出到可执行jar中,并提供给用户进行测试。如何在jar中传递此环境变量,使其在运行时可用。我认为应该有一些可能性,将有配置在pom文件或一些属性文件。

i5desfxk

i5desfxk1#

您可以将项目打包到jar中,并提供一个脚本来启动程序。
脚本中的主要条目是:

java -Xmx512M -cp "your jars" "Main method's Class"
jyztefdp

jyztefdp2#

您可以按照@rex的建议使用-ddgoole\u api\u key=x,或者执行以下操作:

System.setProperty("GOOLE_API_KEY","XXXX");

在你的代码里。在图书馆阅读之前,你必须确保这个文件已经加载。最好是作为一个静态块在一个很早就加载的类中。

public class {

  static {
    System.setProperty("GOOLE_API_KEY","XXXX");
  }

}

如果您将使用命令行-d选项,您必须将其作为明文提供给客户,这将使他们非常容易使用。。。
意味着每个运行你的软件的人都知道你的api密钥。如果您将它硬编码到jar中,那么获取它将变得更困难(但很可能)。
如果你把它留在代码里,会让好人更容易保持善良。

cotxawn7

cotxawn73#

你可以这样做below:-

<property>
          <jvm.options>-Xmx512M</jvm.options>
    </property>
    <plugins>
    <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-compiler-plugin</artifactId>
       <version>3.3</version>
       <compilerArgs>
            <arg>${jvm.options}</arg>
       </compilerArgs>
    </plugin>
</plugins>

相关问题