2014年8月6日 星期三

[研究] FindBugs 3.0.0 安裝 (CentOS 7.0 x64)

[研究] FindBugs 3.0.0 安裝 (CentOS 7.0 x64)

2014-02-07

FindBugs是Java靜態程式原始碼檢測工具,一套專為Java程式碼除錯的工具,採LGPL授權,利用Bug Pattern進行程式碼的比對,自動檢查出程式碼可能發生的錯誤。它分析的對象是Java bytecode (編譯出來的.class)檔案,即時沒有原始碼也還是能使用。在軟體發布之前可用它做一次預防檢查,就有機會減少Bug在實際使用時才發生的機會。FindBugs可以用Command-line方式執行,也有提供GUI的介面,可搭配Apache Ant或Eclipse等開發工具,讓程式碼錯誤偵測的工作變成自動化流程的一部分。

官方網站網址
http://findbugs.sourceforge.net/

安裝步驟

取得FindBugs套件壓縮檔,解壓縮之後在有安裝JRE (Java Runtime Environment)和圖形介面的機器上執行findbugs (Windows則用findbugs.bat)就能開始使用。也可以加上參數-textui來使用文字介面。JRE可以到網址:
http://www.java.com/zh_TW/download/manual.jsp

yum -y install  java
#yum -y install  java-1.7.0-openjdk-devel
export JAVA_HOME=/usr

wget  http://jaist.dl.sourceforge.net/project/findbugs/findbugs/3.0.0/findbugs-3.0.0.tar.gz
tar zxvf  findbugs-3.0.0.tar.gz
./findbugs-3.0.0/bin/findbugs

測試方法

我們拿JDK Source來測試,請手動下載 jdk-8u11-linux-x64.gz

[root@localhost ~]# tar zxvf jdk-8u11-linux-x64.gz
[root@localhost ~]# cd jdk1.8.0_11/
[root@localhost jdk1.8.0_11]#  unzip  src.zip  -d  src/

請注意下面 findbugs 程式路徑,和 rt.jar 路徑要依據實際情況修改

[root@localhost jdk1.8.0_11]#  /root/findbugs-3.0.0/bin/findbugs  -textui  -html:plain.xsl  -output  output.html  -sourcepath  src/  -progress  /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el7_0.x86_64/jre/lib/rt.jar
Scanning archives (0 / 1)Aug 06, 2014 10:57:36 PM java.util.prefs.FileSystemPref                                                                                                  erences$1 run
INFO: Created user preferences directory.
Scanning archives (1 / 1)
2 analysis passes to perform
Pass 1: Analyzing classes (18557 / 18557) - 100% complete
Pass 2: Analyzing classes (18557 / 18557) - 100% complete
Done with analysis
The following classes needed for analysis were missing:
  sun.org.mozilla.javascript.Scriptable
  sun.org.mozilla.javascript.Function
  sun.org.mozilla.javascript.ScriptableObject
  sun.org.mozilla.javascript.ClassShutter
  sun.org.mozilla.javascript.ContextFactory
  sun.org.mozilla.javascript.ImporterTopLevel
  sun.org.mozilla.javascript.NativeJavaObject
  sun.org.mozilla.javascript.WrapFactory
  javax.crypto.SecretKey
  sun.nio.cs.ext.EUC_TW$Decoder
  sun.nio.cs.ext.EUC_TW$Encoder
  sun.nio.cs.ext.DoubleByteEncoder
  sun.nio.cs.ext.JIS_X_0201$Encoder
  javax.crypto.spec.OAEPParameterSpec
  javax.crypto.spec.PSource
  javax.crypto.spec.PSource$PSpecified
  javax.crypto.BadPaddingException
  javax.crypto.Cipher
  javax.crypto.spec.IvParameterSpec
  javax.crypto.spec.SecretKeySpec
  javax.crypto.SecretKeyFactory
  javax.crypto.Mac
  javax.crypto.spec.PBEKeySpec
  javax.crypto.spec.DESKeySpec
  sun.org.mozilla.javascript.Context
  sun.org.mozilla.javascript.Script
  sun.org.mozilla.javascript.RhinoException
  sun.org.mozilla.javascript.JavaScriptException
  sun.org.mozilla.javascript.ScriptRuntime
  sun.org.mozilla.javascript.Wrapper
  sun.security.ssl.SSLSocketImpl
  javax.crypto.spec.DESedeKeySpec
  javax.crypto.IllegalBlockSizeException
  sun.org.mozilla.javascript.Callable
  sun.org.mozilla.javascript.NativeArray
  sun.org.mozilla.javascript.NativeJavaArray
  sun.org.mozilla.javascript.LazilyLoadedCtor
  sun.org.mozilla.javascript.Synchronizer
  javax.crypto.KeyGenerator
  sun.nio.cs.ext.JIS_X_0208_Encoder
  sun.nio.cs.ext.JIS_X_0208_Decoder
  sun.nio.cs.ext.JIS_X_0201$Decoder
  sun.nio.cs.ext.JIS_X_0212_Encoder
  sun.nio.cs.ext.JIS_X_0212_Decoder
  javax.crypto.spec.PBEParameterSpec
  javax.crypto.spec.DHParameterSpec
  javax.crypto.CipherOutputStream
  javax.crypto.CipherInputStream
  javax.crypto.interfaces.DHPublicKey
  javax.crypto.spec.DHPublicKeySpec
  javax.crypto.interfaces.DHKey
  sun.security.ssl.Krb5Helper
  sun.nio.cs.ext.JIS_X_0201
  sun.org.mozilla.javascript.EvaluatorException
  javax.crypto.NoSuchPaddingException
  sun.org.mozilla.javascript.NativeJavaClass
  sun.nio.cs.ext.EUC_TW
  sun.org.mozilla.javascript.Undefined
Warnings generated: 7309
Missing classes: 54
[root@localhost jdk1.8.0_11]#


掃描結果會標示出總共掃描的程式碼行數、可能存在問題的程式檔案位置和問題所在行數等資訊,建議的解決方法,並分成高和中的安全優先等級分類顯示出來。

報告在 output.html檔案中。

(完)

[研究] FindBugs 3.0.0 安裝 (CentOS 7.0 x64)
http://shaurong.blogspot.com/2014/08/findbugs-300-centos-70-x64.html

[研究] FindBugs 2.0.3 (Java靜態程式原始碼檢測工具)
http://shaurong.blogspot.com/2014/02/findbugs-203-java.html

[研究] FindBugs 1.5.3 (Java靜態程式原始碼檢測工具)
http://forum.icst.org.tw/phpbb/viewtopic.php?t=16300

[研究] Oracle Java 7 Update 51 快速安裝程式(CentOS 6.5 x64)
http://shaurong.blogspot.com/2014/01/oracle-java-7-update-51-centos-65-x64.html
http://forum.icst.org.tw/phpbb/viewtopic.php?f=44&t=80711

沒有留言:

張貼留言