昱得資訊工作室
麻辣學園
歡迎光臨, 訪客. 請先 登入註冊一個帳號.
2017-09-26, 12:55:00
昱得資訊工作室
首頁 說明 登入 註冊 想當作者?
新聞: 會員注意!!麻辣家族討論區已轉換新系統,請移駕[麻辣家族新論壇]!!


+  麻辣家族討論區
|-+  程式設計
| |-+  Java 與 J#
| | |-+  System.getenv: NullPointerException錯誤
0 會員 以及 1 訪客 正在閱讀本篇主題. « 上一篇主題 下一篇主題 »
頁: [1] 向下 列印
作者 主題: System.getenv: NullPointerException錯誤  (閱讀 12539 次)
leonchou
論壇維護群
*
離線 離線

文章: 1214


System.getenv: NullPointerException錯誤
« 於: 2009-05-12, 06:34:53 »

在Linux server寫了一個Java程式, 原本在PC端可以透過remote shell (rsh)遠端執行.
自從加了一段System.getenv的程式之後, 雖然在程式所在的Linux主機執行OK, 可是在PC端 rsh 執行就會出錯 (主機名稱叫做mobile,程式名稱是OliteAPI,之後是參數), 指令和錯誤訊息如下 --
D:\>rsh mobile ". /ap/bin/oralite.env; java OliteAPI xxx"
Exception in thread "main" java.lang.NullPointerException
    at OliteAPI.main(OliteAPI.java:191)

相關程式碼如下 --
  String hostName = System.getenv("HOSTNAME"); // 190行
  if ( hostName.startsWith("mobiledev") )   // 191行
  ......
已確定原先一模一樣的 rsh 指令是可正常執行的, 是在加了System.getenv之後才不行.
PS. 強調一下,在程式所在的Linux主機執行亦正常, 是PC端 rsh 才不行.
請教問題可能出在哪裡? 謝謝您~~!!
已記錄

leonchou
論壇維護群
*
離線 離線

文章: 1214


Re: System.getenv: NullPointerException錯誤
« 回覆文章 #1 於: 2009-05-14, 05:16:27 »

經高人指點, 解決了問題~
因為純顯示hostname正常 --
D:\>rsh mobile ". /ap/bin/oralite.env;echo $HOSTNAME"
mobile.xxx.com.tw ←回傳值

所以在call java程式之前先設環境變數 --
D:\>rsh mobile ". /ap/bin/oralite.env; export HOSTNAME=$HOSTNAME; java OliteAPI xxx"
這樣就OK了~~

雖不知詳細原因 (為何環境變數純顯示可以, 在java中就出錯),
但至少透過上述方式可以run了...
謝謝關注~~
已記錄

頁: [1] 向上 列印 
« 上一篇主題 下一篇主題 »
自訂搜尋
跳到:  


Google PageRank Checker
本頁花了 0.348 秒, 以及 20 次的資料庫查詢.