OK.이 코드는보기 흉한 코드입니다. 나는 리눅스 박스 (CentOS 5)의 Tomcat 6 인스턴스에서 실행되는 .war 파일을 가지고있다. Java 코드에는 Runtime.exec(cmd)
메소드에 대한 호출이 포함되어 있습니다.이 메소드는 기본 응용 프로그램을 실행하는 1 행 쉘 스크립트로 쉘 아웃됩니다. (R
, 궁금하다면 ...) 네이티브 앱이 데이터베이스에 액세스하는 것과 같은 일을 할 수있는 환경 변수가 있어야합니다. Java 코드를 편집하고 다시 컴파일 할 수 없습니다. .war 파일의 내용을 편집 할 수는 있지만 편집 할 내용을 알지 못합니다. 그러나 나는 괜찮다고 생각합니다. 보통 자식 프로세스는 부모 환경을 상속합니다. 맞습니까? 따라서 ORACLE_HOME과 다른 환경 변수를 포함하려면 JVM 환경이 필요합니다.Tomcat에서 실행되는 응용 프로그램의 환경 변수
tomcat 프로세스가로드 될 때 사용되는 bin/setenv.sh
파일에 변수를 넣을 수 있다는 것을 알았습니다. 거기에 환경 변수를 추가하려고했지만 작동하지 않습니다.
그래서 :
- 내 exec 된 응용 프로그램은 또한 그 변수를 상속 있도록 JVM 프로세스 수준까지 상속됩니다 환경 변수를 설정하는 방법이 있나요?
- 그렇지 않은 경우 변수를 수동으로 설정하려면 .war 파일에서 무엇을 편집해야합니까? (그리고 얼마나 못생긴가 ??)
이 추한 해킹 작업을 도와 주셔서 감사합니다!