Archive


Category: 來玩JAVA

  • [JAVA] JVM記憶體的設定調校

    1. JAVA Heap Size 這是JAVA 應用程式最主要的記憶體使用,透過JVM的GC來回收,如果爆了你會收到 java.lang.OutOfMemoryError: Java heap space 設定方法如下 -Xms<size> – Set initial Java heap size -Xmx<size> – Set maximum Java heap size # java -Xms512m -Xmx1024m JavaProgram 2. PermGen Size 主要用來存放你載進來的物件和metadata,如果爆了你會收到 Java.Lang.OutOfMemoryError: PermGen 設定方法如下 -XX:PermSize<size> – Set initial PermGen Size. -XX:MaxPermSize<size> – Set the maximum PermGen Size. # java -XX:PermSize=64m -XX:MaxPermSize=128m JavaProgram 3. […]

  • [JAVA] JVM記憶體設定查詢

    How to check your JAVA JVM memory setting?? You can using this command as below java -XX:+PrintFlagsFinal -version | grep -iE ‘HeapSize|PermSize|ThreadStackSize’ The result print on screen      uintx AdaptivePermSizeWeight                    = 20              {product}       intx CompilerThreadStackSize     […]

  • [JAVA] 參數經過URLEncoder encode再使用POST傳值給IIS API時是NULL

    我的使用情形是透過JAVA,需要以POST方式傳送一組參數到IIS Server的API,並根據所傳送的資料返回不同的結果來決定行動. 而這組參數又有包含一些特殊符號,比如 / + 等等. 而在URI傳送時這些特殊符號會造成錯誤,所以必須先使用 URLEncoder.encode( )將原來的queryStr轉換為urlParameters,像下面這樣 String urlParameters = URLEncoder.encode(queryStr,”UTF-8″); 但這麼做產了一個問題,encode前IIS API還收得到參數值,而encode後居然就收不到了,所以參數值是NULL. 這是因為 URLEncoder.encode( )會一起把POST裡的= &轉換為%3D %26,而IIS卻又無法解讀. 所以最後我使用了變通的方法,方法如下 String urlParameters = URLEncoder.encode(queryStr,”UTF-8″); urlParameters = urlParameters.replace(“%3D”, “=”); urlParameters = urlParameters.replace(“%26”, “&”); 把 = & 還原回去再傳送,這樣就能成功傳送並接收回傳值了. 這邊有篇文章有說到這個情形,有興趣的人可以參考 http://www.onjava.com/excerpt/jvntwkprg_3e/

  • [JAVA] HttpURLConnection Post Argument contains add sign +

    If you using HttpURLConnection to post argument to WEB API, and the argument contaions + sign, the + sign will be replace to space How to avoid this?? String urlParameters  = “Token=”+ queryStr; change String urlParameters  = “Token=”+ URLEncoder.encode(queryStr,”UTF-8”);

  • [JAVA] Java透過URL Post傳送資料給WEB API並取得返回值

    這個例子是由JAVA傳送參數給WEB API,並取得WEB API的返回值. 而例子的WEB程式是PHP,很簡單的只是接從WEB使用POST傳來的二個參數,並整合成一段文字,顯示在網頁上 <?php $name = $_POST[‘user’]; $age = $_POST[‘age’]; echo $name.”,you are “.$age.” years old.”; ?> 而JAVA的程式碼如下 package com.mydomain.java.modules; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.StandardCharsets; public class UrlPostTest {     public static void main(String[] args) {                  String urlParameters  = “user=charles&age=100”; […]

  • [JAVA] Java透過URL獲取JSON並分析取得資料

    This is my JSON data from URL {“ChannelName”:”testChannel”,”ErrResult”:{“ErrCode”:0,”Messages”:[“OK”]},”ModelStateError”:{}} I want to get the value of ChannelName and ErrCode fields My code is as below package com.mydomain.java.modules; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import org.json.JSONObject; public class JsonTest {     public static void main(String[] args) {         // checkurl replace with […]

  • [JAVA] JAVA使用JSON傳輸資料 – 前置步驟,Eclipse上安裝JSON套件

    本文將介紹JAVA編碼時,想用JSON來傳輸資料時,先前步驟要安裝JSON套件. (當然你也可以自己從頭寫,我想沒人有意見,除非你很閒,不然有人寫好了,幹麻不直接拿來用) 1. 先去下載套件,網址在這 https://github.com/stleary/JSON-java 2. 接著就把下載的壓縮檔解壓縮,你會看到很多的java檔 3. 開啟你的Eclipse,在專案旁按滑鼠右鍵按「New』→「Package』 4. 為新增的package取個名,這裡是使用org.json,完成這個步驟,你的Eclipse的工作區裡就會多了org的目錄,裡面還有json目錄 5. 而Eclipse的工作區所在由個人設定,所以你要找到工作區裡的org.json,把我們剛剛下載解壓縮的檔案複製一份到這個目錄內 6. 在org.json的package上按滑鼠右鍵,執行「Refresh』 7. 這時你在編輯區去 import org.json時就會出現許多選項,這樣就可以使用org.json的功能了   後記:上述方法是讓讀者了解作法,更常使用的是先編成 jar 檔再使用它.

  • [JAVA] java程式需要連網,但透過proxy的設定

    本文是擷錄自http://stackoverflow.com/questions/12405159/how-to-get-data-from-a-url System.setProperty(“http.proxyHost”, “這裡換成proxy IP”); System.setProperty(“http.proxyPort”, “這裡換成proxy port”);

  • [JAVA] 使用java連接網站並將內容印出

    本文範例來自 http://stackoverflow.com/questions/12405159/how-to-get-data-from-a-url   import java.net.*; import java.io.*; public class URLConnectionReader { public static void main(String[] args) throws Exception { URL oracle = new URL(“http://www.oracle.com/”); URLConnection yc = oracle.openConnection(); BufferedReader in = new BufferedReader(new InputStreamReader( yc.getInputStream())); String inputLine; while ((inputLine = in.readLine()) != null) System.out.println(inputLine); in.close(); } }    

  • [JAVA] 建立免安裝的JAVA

    1.第一步當然到ORACLE網站下載JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html 2.本文是以現時 jdk-8u60-windows-i586.exe 為例,雖然它是exe檔,但請使用你的解壓軟體7zip或winrar給它解壓縮,解壓後會出現一個tools.zip的壓縮檔. 3.再對tools.zip解壓縮,這時你就會看到JAVA的檔案了,這時我的路徑是在D:\JDK 4.再來要進”命令提示字元(DOS)”針對幾個檔案來改副檔名 rename “D:\JDK\jre\lib\charsets.pack.jar” charsets.jarrename “D:\JDK\jre\lib\deploy.pack.jar” deploy.jarrename “D:\JDK\jre\lib\javaws.pack.jar” javaws.jarrename “D:\JDK\jre\lib\jsse.pack.jar” jsse.jarrename “D:\JDK\jre\lib\plugin.pack.jar” plugin.jarrename “D:\JDK\jre\lib\rt.pack.jar” rt.jarrename “D:\JDK\jre\lib\ext\jfxrt.pack.jar” jfxrt.jarrename “D:\JDK\jre\lib\ext\localedata.pack.jar” localedata.jarrename “D:\JDK\lib\tools.pack.jar” tools.jar 5.JAVA這樣就完成了,接下來是Windwos的PATH變數,這個對JAVA程式設計者應該常做吧,省略囉!