2015年5月12日 星期二

關於 Java 反編譯

command  line :
  • javap -private {class name}

example :   javap -private Learn_2_1.class



使用Intellij IDEA 14 ,開發scala (未使用sbt),IDE會將scala轉成 .class檔,會放置out資料夾中,此時就可使用  javap -private {class name} 來查看scala 如何將 scala轉成 java程式碼。



另外在反編譯上有個好用的JAD(Java Decompiler)  一個小咖啡杯,只要將要反編譯的拖拉過去就可以看到結果啦。


JAD:
  • wiki  :   http://en.wikipedia.org/wiki/JAD_(JAva_Decompiler)
  • tools  :   http://jd.benow.ca/
  • tools  :   http://www.brouhaha.com/~eric/software/mocha/


2015年5月11日 星期一

Maven POM Reference

Maven POM

modelVersion
  •  POM 的版本

groupId
  • 唯一值,通常為組織或專案項目。通常會以full domain name作為值,例如org.codehaus.mojo。
 
artifactId
  • package生成名字的依據,這是base name 整體名稱是由 artifactId + version 組成。

packaging
  • 打包的類型,例如jar、war、EAR 
version 
  • 如果有SNAPSHOT字串,代表開發階段。
 
url  
  • 專案放置位置,例如git的所在位置 。
 
dependencies
  • 描述

dependencies
  • 依賴關係的置放區塊,例如用到某個jar library,
    放在此處的描述maven將會自動下載至專案中,
    避免常常找不到jar的窘境。

dependency
  • dependencies中的一個項目,不同library會用dependency來宣告。 
example:

 
            org.springframework
            spring-aspects
            ${springframework.version}
       

       
            org.springframework
            spring-webmvc
            ${springframework.version}
       

      
            org.thymeleaf
            thymeleaf-spring4
            2.1.2.RELEASE
       





repositories
  • 用來設定遠端library倉庫所在的區塊。 
repository
  • 用來描述一個倉庫。
     
example :

 
        
            spring
            http://repo.spring.io/release
       

       
            repository.springsource.milestone
            http://repo.springsource.org/milestone
       

       
            neo4j-releases
            http://m2.neo4j.org/releases/
       

 



properties
  • 用來定義參數給予其他POM區塊使用。
     
example:

   
        UTF-8
        1.8
        1.0-SNAPSHOT
        1.7.6
        <springframework.version>4.0.1.RELEASE</springframework.version>
        1.7.3
        2.0.1
   


 而在依賴關係區塊中可如此使用
      
            org.springframework
            spring-webmvc
            ${springframework.version}
       




build
  • 執行打包時要做的動作。



參考資料:
  • https://maven.apache.org/pom.html

2015年5月7日 星期四

Ruby on Rails 整合開發工具

Rails install

安裝  Rails 前:
  1.  裝好 RVM  參考此篇
  2.  安裝 Ruby 參考此篇
  3.  指定 Gem 空間  參考此篇
PS. 當然你可以不安裝 RVM ,而直接安裝 Ruby與Rails 但是日後開發上會非常不方便。



安裝 Rails

MAC需要先  xcode-select --install
  • gem update
  • gem install rails -v='4.2.1'  --no-rdoc --no-ri

PS. MAC 若沒先 xcode-select --install則在Building native extensions.  會發生錯誤。

查看目前安裝的東西
  • gem list



rails 可參考資料網站:
  • http://rubyonrails.org/
  • https://rubygems.org/
  • https://ihower.tw/rails4/installation.html
  • http://blog.eddie.com.tw/2011/04/08/rvm-and-gemsets/

gems

gems: 套件包管理工具

# 查詢 gem 可用參數
  •  gem -h

# 查詢 gem 命令
  • gem help commands
 # 查詢版本
  • gem -v
 # 查詢 RubyGems 環境資訊
  • gem environment

# 查詢 gem 已經安裝套件
  • gem list
 # 安裝套件
  • gem install  {套件的名稱}
 # 移除套件
  • gem uninstall {套件的名稱}


rvm gemset

gem 是套件管理工具,類似 apt-get、npm 這類的package manager tools。


RVM 的gemset,可以讓你的機器有獨立的各個gem空間,讓不同版本可以使用不同的gem套件空間。



 1. 建立一個新的 gem 環境空間
  • rvm gemset create rails421


 2. 查看 gem 空間狀況
  • rvm gemset list

    gemsets for ruby-2.2-head (found in /home/ubuntu/.rvm/gems/ruby-2.2-head)
    => (default)
       global
       rails421



 3 切換 gem (將當前使用的ruby 版本使用 gem 環境切換)
  •  rvm gemset use rails421
          Using ruby-2.2-head with gemset rails421


    可用 rvm gemset list 再次查看gem使用狀況



其他常用 :
  • rvm gemset empty    {目標gem}     //清空gem內容
  • rvm gemset copy      {來源gem}  {目標gem}  //複製gem內容
  • rvm gemset rename {來源gem}  {目標gem} 
  • rvm gemset delete    {目標gem}

這樣就可以把gem庫換來換去啦~ 開發時很好用


參考:

rvm rubies installing

System : Ubuntu


RVM Ruby 安裝

# 先查詢可安裝的Ruby列表
  • rvm list known
# 安裝 Ruby
  • rvm install 2.1.4       //會跳出詢問要輸入 ubuntu password
       ====== 密碼詢問的提示 =======

       Updating system..ubuntu password required for 'apt-get --quiet --yes update':

       在這時後,輸入ubuntu的密碼後按下Enter就會開始安裝Ruby


#安裝 第二套 ruby
  • rvm install 2.0.0-p643

#查詢安裝狀態
  • rvm list
==========  rvm list 輸出結果  ========================

        ubuntu@ubuntu:~$ rvm list

        rvm rubies

        => ruby-2.0.0-p643 [ x86_64 ]
         * ruby-2.1.4 [ x86_64 ]

        # => - current
        # =* - current && default
        #  * - default


# 切換使用版本
  • rvm use 2.1.4   //current 會切換成 2.1.4

# 設定預設版本
  • rvm 2.1.4 --default

# 查詢目前機器Ruby資訊
  • rvm info






#如果想切回原本系統上的 Ruby  (已經使用了rvm 這個除非有特殊需求,不然就少用吧)

  • rvm system