[Weblogic]startWebLogic.cmd配置JAVA_OPTIONS無效的解決思路與方案


事情背景:

由於某個項目原因,需要在2個域的startWebLogic.cmd文件加入如下設置

set JAVA_OPTIONS=%JAVA_OPTIONS% -javaagent:"path\xx.jar"

同樣的設置,一個域成功,一個域失敗。失敗的域在啟動weblogic時發現jar包無加載成功,同時亦無日志輸出報錯。

原因尋找思路:

1、首先添加確保語句正確無誤

2、從startWebLogic.cmd文件下手,一個一個調用看,看看那里出錯。

@REM Call setDomainEnv here.
set JAVA_OPTIONS=%JAVA_OPTIONS% -javaagent:"path\xx.jar"         --添加的語句,已確保無誤

set DOMAIN_HOME=f:\Oracle\Middleware\user_projects\domains\base_domain
for %%i in ("%DOMAIN_HOME%") do set DOMAIN_HOME=%%~fsi

call "%DOMAIN_HOME%\bin\setDomainEnv.cmd" %*

set SAVE_JAVA_OPTIONS=%JAVA_OPTIONS%

set SAVE_CLASSPATH=%CLASSPATH%

看着紅色的語句是要讀取setDomainEnv.cmd文件的配置,翻查到該文件,並發現以下語句:

set JAVA_OPTIONS= -DKF_APP_INST=F:\test\Test_Server\

問題已經浮出水面了:

按照執行順序來看,我們在startWebLogic.cmd里先設置JAVA_OPTIONS的值,然后執行到setDomainEnv.cmd文件時,又設置一遍,導致之前設置的值被覆蓋掉了,所以沒有生效。

 

解決方法:

1、在setDomainEnv.cmd設置的語句加上=%JAVA_OPTIONS%,即:

set JAVA_OPTIONS==%JAVA_OPTIONS% -DKF_APP_INST=F:\test\Test_Server\

加上%JAVA_OPTIONS%簡單來說就是累加的意思,代表之前已設置的值。

2、改變startWebLogic.cmd文件里設置JAVA_OPTIONS值的位置,將set JAVA_OPTIONS=%JAVA_OPTIONS% -javaagent:"path\xx.jar" 語句放到call "%DOMAIN_HOME%\bin\setDomainEnv.cmd" %*語句的后面即可。

建議:

1、set JAVA_OPTIONS的值的時候都要加上%JAVA_OPTIONS%,以防覆蓋掉別人設置的值,這不單只set JAVA_OPTIONS,設置其他值也同理。

2、在設置這些值的時候最好能做好記錄,以免他人設置時能知道前人的設置。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM