好的,這很醜。我有一個.war文件,運行在Linux機器上的Tomcat 6實例(CentOS 5)上。 Java代碼包含對Runtime.exec(cmd)
方法的調用,在該方法中,該方法將發送到運行本機應用程序的單行shell腳本。 (R
,如果你好奇......)一切都很好,除了原生應用程序需要設置一些環境變量,以便它可以執行諸如訪問數據庫之類的內容。我無法編輯java代碼並重新編譯。我想我可以編輯.war文件的內容,但我不知道要編輯什麼。但我認爲沒關係 - 子進程通常會繼承父進程的環境,對吧?所以我只需要JVM的環境來包含ORACLE_HOME和其他環境變量。在Tomcat下運行的應用程序的環境變量
我發現你可以在tomcat進程加載時使用的bin/setenv.sh
文件中放置變量。我嘗試在那裏添加環境變量,但這不起作用。
所以:
- 有沒有辦法設置將被繼承下來到JVM進程級的環境變量,讓自己的exec'd應用程序也繼承了這些變量?
- 如果不是,我應該在.war文件中編輯以手動設置這些變量。 (以及這是多麼醜陋?)
感謝您幫助我得到這個醜陋的黑客工作!