JVM을 시작할 때 classpath의 .jar 파일에서 .properties 파일을 자동으로로드하도록 JVM을 설정하려면 어떻게해야합니까? 나는 (-D와 함께) 명령 행에서 속성을 설정하고 싶지는 않지만 .properties 파일에 속성을 넣고 싶다.JVM 시작시 .jar의 .properties 파일에서 속성 설정
Maven을 사용하여 구성하는 방법이 있습니까?
JVM을 시작할 때 classpath의 .jar 파일에서 .properties 파일을 자동으로로드하도록 JVM을 설정하려면 어떻게해야합니까? 나는 (-D와 함께) 명령 행에서 속성을 설정하고 싶지는 않지만 .properties 파일에 속성을 넣고 싶다.JVM 시작시 .jar의 .properties 파일에서 속성 설정
Maven을 사용하여 구성하는 방법이 있습니까?
아니요, 시스템 속성을 파일에서 자동으로로드 할 수 없습니다. 당신이 할 수있는 일은 파일을 읽고 "-D"명령 행 옵션에 자동으로 "번역"하는 일종의 발사기입니다.
Java WebStart는 시스템 속성이 JNLP file에 정의되어 있습니다. 어쩌면 그걸 사용할 수 있습니다.
Maven을 사용하여 애플리케이션을 패키징하는 경우 appassembler-maven-plugin의 generate-daemons 목표를 사용하는 것이 좋습니다. 그러면 Windows 및 Linux 용 JSW 기반 데몬 래퍼가 생성됩니다. 따라서 응용 프로그램을 시작하는 데 사용되는 bat/sh 파일에는 정의 된 속성이 있지만 명령 줄을 통해 추가 속성을 지정할 수 있습니다.
실행시에 defaultJVMSettings 등록 정보를 지정하여 해당 등록 정보로 JVM을 시작할 수 있습니다. 아래 예제는 이러한 설정을 정의하는 방법을 보여줍니다.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>1.0</version>
<execution>
<id>generate-jsw-scripts</id>
<phase>package</phase>
<goals>
<goal>generate-daemons</goal>
</goals>
<configuration>
<defaultJvmSettings>
<initialMemorySize>256M</initialMemorySize>
<maxMemorySize>1024M</maxMemorySize>
<systemProperties>
<systemProperty>java.security.policy=conf/policy.all</systemProperty>
<systemProperty>com.sun.management.jmxremote</systemProperty>
<systemProperty>com.sun.management.jmxremote.port=8999</systemProperty>
<systemProperty>
com.sun.management.jmxremote.authenticate=false
</systemProperty>
<systemProperty>com.sun.management.jmxremote.ssl=false</systemProperty>
</systemProperties>
<extraArguments>
<extraArgument>-server</extraArgument>
</extraArguments>
</defaultJvmSettings>
<daemons>
<daemon>
<id>myApp</id>
<mainClass>name.seller.rich.MainClass</mainClass>
<commandLineArguments>
<commandLineArgument>start</commandLineArgument>
</commandLineArguments>
<platforms>
<platform>windows</platform>
<platform>unix</platform>
</platforms>
</daemon>
</daemons>
<target>${project.build.directory}/appassembler</target>
</configuration>
</execution>
</plugin>
독립 실행 형 응용 프로그램을위한 훌륭한 솔루션이지만 내 경우에는 라이브러리가 있습니다. 그리고이 lib와 속성을 묶는 방법으로, 번들 된 속성이 사용될 때마다 번들로 묶고 싶습니다. 그래서 기본적으로 소스 코드에서해야 할 것입니다. – desolat
나는 오늘 새로운 것을 배웠다. 응답 해 주셔서 감사합니다. –