跳到主要內容

發表文章

目前顯示的是 7月, 2016的文章

Mac版 Java 7 取得檔案 MIME type 的方式

現行 Java 取得檔案 MIME type的標準方式是透過 Files.probeContentType(Path path) 取得 最近處理同事回報的問題才發現這個方式在Mac版的 Java 7 有bug 官方錯誤列表: http://bugs.java.com/bugdatabase/view_bug.do?bug_id=7133484 而且應該只會修正Java 8以後的版本 目前測試改用 URLConnection.guessContentTypeFromName(String fileNmae) 也是一種可行的方式 如果MIME type相關的程式有可能部署在 Mac環境的 Java 7的話,需要注意這個問題

Java Nashorn Engine 的 setTimeout 使用方式

之前想透過 Java 的 Nashron 執行 setTimeout 這個定時執行的 JavaScript 函式碰到問題 看起來 Nashorn 並沒有實作關於非同步的 JavaScript 機制 我並沒有花太多時間查閱相關規格,只能猜想也許他鼓勵設計者使用 Java 的 async 機制 不過有時候需要執行的JavaScript Code 沒辦法排除 setTimeout 而改寫成 Java code 查到的相容寫法如下: var setTimeout, clearTimeout, setInterval, clearInterval; (function () {     var timer = new java.util.Timer();     var counter = 1;     var ids = {};     setTimeout = function (fn,delay) {         var id = counter++;         ids[id] = new JavaAdapter(java.util.TimerTask,{run: fn});         timer.schedule(ids[id],delay);         return id;     }     clearTimeout = function (id) {         ids[id].cancel();         timer.purge();         delete ids[id];     }     setInterval = function (fn,delay) {         var id =...

從 Android device 取得App crash log

參考資料: https://wiki.cyanogenmod.org/w/Doc:_debugging_with_logcat Android developer 大概都會有協助測試 app 執行狀況的需求 不過如果不是用 Android Studio build 的話,crash report 只能從 device本身拿出來才看的到 以 Windows 為例的取得方式如下: 1.Win+R 叫出執行後,輸入 cmd 啟用命令提示字元 2.切換到 Android SDK 底下的 platform-tools 目錄 C:\Users\vencil>D: D:\SubPrograms\AndroidSDK\tools>cd D:\SubPrograms\AndroidSDK\platform-tools 3. 下指令 adb logcat *:E > [destination] 就可以將log輸出到目的檔案裡了 D:\SubPrograms\AndroidSDK\platform-tools>adb logcat *:E > D:\errlog.log 如果想在不移除app的狀況下清除累積的log,可以用 logcat  指令帶 -c flag D:\SubPrograms\AndroidSDK\platform-tools>adb logcat -c