我在用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后,就可正常引用和使用?

解决方案 »

  1.   

    一直在命令行当中编译么?初学用用还行,一直用这个挺费功夫的
    你这里我想是环境变量CLASSPATH的问题,如果你CLASSPATH有E:\Program Files\Java\jdk1.7.0\lib那么把commons-lang3-3.0.1这个jar放进去是肯定可以的
    第二种方法出错是因为你没有把commons-lang3-3.0.1的jar后缀文件名加上,建议你改名为commons-lang.jar然后在CLASSPATH添加一个值 E:\down\commons-lang.jar 
    先按推荐的方法试试,应该可以的
      

  2.   

    一直在命令行当中编译么?初学用用还行,一直用这个挺费功夫的
    你这里我想是环境变量CLASSPATH的问题,如果你CLASSPATH有E:\Program Files\Java\jdk1.7.0\lib那么把commons-lang3-3.0.1这个jar放进去是肯定可以的
    第二种方法出错是因为你没有把commons-lang3-3.0.1的jar后缀文件名加上,建议你改名为commons-lang.jar然后在CLASSPATH添加一个值 E:\down\commons-lang.jar  
    先按推荐的方法试试,应该可以的
    ------------------------两种方法我都试了,我的CLASSPATH设为(E:\Program Files\Java\jdk1.7.0\lib;E:\down\commons-lang3-3.0.1\commons-lang3-3.0.1.jar;)并将commons-lang3-3.0.1这个jar复制到E:\Program Files\Java\jdk1.7.0\lib,还是没过:(
      

  3.   

    你留个QQ加你QQ吧,我的号已经给你留了
      

  4.   

    事实是你的程序的问题,import 的ArrayUtils是commons-lang1而你自己使用的是commons-lang3的版本,所以无论怎么设置都找不到,给你改了代码,贴出来如下,这次肯定能正常编译运行了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();  }}
      

  5.   

    原来是import处的错误,十分感谢!