java带参数运行失败的问题,Exception in thread "main"
本帖最后由 mreanew 于 2012-08-06 23:53 编辑程序代码如下(根据书本输入的,我认为没有错误):
package chapter5;
import java.util.*;
class Deal {
public static void main(String args[]){
int numHands=Integer.parseInt(args);
int cardsPerHand=Integer.parseInt(args);
//生成一副牌(含52张牌)
String[] suit=new String[]{"spades","hearts","diamonds","clubs"};
String[] rank=new String[]
{"ace","2","3","4","5","6","7","8","9","10","jack","queen","king"};
List<String> deck=new ArrayList<String>();
for(String ss:suit)
for(String sr:rank)
deck.add(sr+" of "+ss);
Collections.shuffle(deck); //随机改变deck中元素的排列次序,即洗牌
for(int i=0;i<numHands;i++)
System.out.println(dealHand(deck,cardsPerHand)); //生成一张手牌并将其输出
}
public static List dealHand(List<String> deck,int n){
int deckSize=deck.size();
//从deck中截取一个子链表
List<String> handView=deck.subList(deckSize-n, deckSize);
List<String> hand=new ArrayList<String>(handView); //利用该子链表创建一个链表
handView.clear(); //将子链表清空
return hand;
}
}
执行后有如下错误,看图:
问:该当如何解决?谢谢!我是一个菜鸟,希望大家会帮忙。 主要是“package chapter5;”这一句引起的,编译完Deal.java后,要将其打包在chapter5.jar里面,命令行执行时,输入:java chapter5.Deal 2 5就可以了,运行结果是:
也可以编译时进行处理,具体见与ClassPath相关的内容 或者干脆删除“package chapter5;”这一句就可以了。在Eclipse里没那么麻烦,只需在Run Configurations里的参数部分输入2 5 就可以运行了。上述是在Xubuntu12.04下的情况,其他系统也许会略有不同。
回复 2# isaacxu
谢谢你,因为你的答案,我解决了这个问题,正确学会了简单又重要的两种带参数运行方式。我用eclipse编译运行的。你是我的救星,现在可以继续学习了。
刚开始学习的时候尽量直接使用Eclipse自带的功能. Eclipse写java还是挺好用的。虽然很从时候写工程用myeclipse. 真不错,赞一个,继续努力啊
页:
[1]