当前位置: 代码迷 >> J2SE >> 有人能帮小弟我解释程序包org.apache.commons.lang的使用有关问题吗
  详细解决方案

有人能帮小弟我解释程序包org.apache.commons.lang的使用有关问题吗

热度:647   发布时间:2016-04-24 18:13:35.0
有人能帮我解释程序包org.apache.commons.lang的使用问题吗
我在用jdk自带的javac、java命令编译执行程序,没有使用eclipse等软件,使用的jdk版本jdk7(下载的安装程序为jdk-7-windows-i586)。
  我的一个程序中引入了软件包(import org.apache.commons.lang.ArrayUtils;),用javac编译程序后,命令行提示“软件包org.apache.commons.lang不存在”。
  这是我头一次使用这个包,现在已经知道这是一个第三方软件包,我已经下载了(commons-lang3-3.0.1-bin.tar,commons-lang3-3.0.1-bin)两个压缩文件(两个压缩文件内容好像完全一样),并解压了(commons-lang3-3.0.1-bin)文件到目录E:\down\commons-lang3-3.0.1,其中包含了两个jar文件(commons-lang3-3.0.1、commons-lang3-3.0.1-tests)和三个文本文件(lisence、notice、release_notice),谁能解释:
  1、commons-lang3-3.0.1-bin.tar,commons-lang3-3.0.1-bin两个压缩文件的作用和差异
  2、commons-lang3-3.0.1、commons-lang3-3.0.1-tests两个jar文件的作用和差异
  程序编译不通过,我尝试了两种方式但都不成功:
  1、复制commons-lang3-3.0.1、commons-lang3-3.0.1-tests两个jar文件到我的java安装目录中的(E:\Program Files\Java\jdk1.7.0\lib),用javac编译程序后,命令行提示“软件包org.apache.commons.lang不存在”。
  2、在用户变量中新建变量名(CLASSPATH)变量值(E:\down\commons-lang3-3.0.1;.;),用javac编译程序后,命令行提示“软件包org.apache.commons.lang不存在”。(在安装jdk时建立的变量名Path变量值E:\Program Files\Java\jdk1.7.0\bin同时存在)
  谁能帮我解释出错的原因,该如何处理?怎样才能让org.apache.commons.lang包向jdk自带包一样,一旦import后,就可正常引用和使用?


------解决方案--------------------
事实是你的程序的问题,import 的ArrayUtils是commons-lang1而你自己使用的是commons-lang3的版本,所以无论怎么设置都找不到,给你改了代码,贴出来如下,这次肯定能正常编译运行了
Java code
import org.apache.commons.lang3.ArrayUtils;import java.util.*;//import org.apache.commons.lang.ArrayUtils;public class ShowHand{  private String[] types={"\4","\5","\3","\6"};  private String[] values={"2","3","4","5","6","7","8","9","10","J","Q","K","A"};  private final int PLNUM=5;  private LinkedList<String> cards=new LinkedList<String>();  private String[] players=new String[PLNUM];  private List<String>[] playersCards=new LinkedList[PLNUM];  void initCards(){    for(int i=0;i<types.length;i++)    {        for(int j=0;j<values.length;j++)        {            cards.add(types[i]+values[j]+"  ");        }    }    Collections.shuffle(cards);  }  boolean initPlayers(String... names){     if(names.length<2||names.length>PLNUM)     {        System.out.println("players nubember error.");        return false;     }    for(int i=0;i<names.length;i++)    {        players[i]=names[i];    }    return true;   }   void initPlayersCards()  {     for(int i=0;i<players.length&&players[i]!=null;i++)     {        playersCards[i]=new LinkedList<String>();     }  }  boolean deleverCards(String first){     boolean find=false;     for(int i=0;i<players.length && (players[i]!=null);i++){      if(first==players[i]){           find=true;           break;        }     }      if(find==false){            System.out.println("name error.");            return false;        }//      int firstPos= ArrayUtils.search(players,first);      //下面是common-lang3的API调用      int firstPos= ArrayUtils.indexOf(players,first);      for(int i=firstPos;i<players.length && (players[i]!=null);i++){           playersCards[i].add(cards.pollFirst());        }     for(int i=0;i<firstPos;i++){           playersCards[i].add(cards.pollFirst());        }      return find;  }  ShowHand(String... names){     initCards();     initPlayers(names);     initPlayersCards();  }  void showCards(){     for(String c:cards)       System.out.print(c+"  ");    System.out.println();  }  void showPlayersCards(){     for(int i=0;i<players.length&&(players[i]!=null);i++)     {         System.out.print(players[i]+": ");         for(String c:playersCards[i])             System.out.print(c+"  ");         System.out.println();     }  }  public static void main(String[] args)  {     ShowHand showHand=new ShowHand("li","liu","zhang","bai");     for(int i=0;i<5;i++)       showHand.deleverCards("bai");    showHand.showPlayersCards();  }}
  相关解决方案