如何在终端中运行打包的java文件?

时间:2017-04-26 23:02:08

标签: java terminal runtime-error packages

很抱歉,如果这可能是个坏问题,但我制作了两个属于同一个包的类。我能够使用javac -d . [ClassName].javajavac -d .. [ClassName].java编译这两个类,但是当我尝试运行它时,它不会说Error: could not find or load main class [ClassName]

如果它有帮助,这两个类都是:

1

package elevenslab;

public class Card{
  private String suit;
  private String rank;
  private int pointValue;

  public Card(String cardSuit, String cardRank, int cardPointValue){
    suit=cardSuit;
    rank=cardRank;
    pointValue=cardPointValue;
  }

  public String getSuit(){
    return suit;
  }

  public String getRank(){
    return rank;
  }

  public int getPtVal(){
    return pointValue;
  }

  public boolean matches(Card otherCard){
    if(this.getSuit().equals(otherCard.getSuit())&&this.getRank().equals(otherCard.getRank())&&this.getPtVal()==otherCard.getPtVal()){
      return true;
    }
    return false;
  }
  public String toString(){
    return rank+" of "+suit+" (point value: "+pointValue+")";
  }
}

2:

package elevenslab;

public class CardTester{
  public static void main(String[] args){
    Card a=new Card("Hearts", "Queen", 12);
    Card b=new Card("Spades", "Ten", 10);
    Card c=new Card("Diamonds", "Ace", 1);
    System.out.println(a.toString()+"\n"+b.toString()+"\n"+c.toString());
  }
}

这两个类都在同一个文件夹和所有内容中。

2 个答案:

答案 0 :(得分:2)

转到目录elevenslab的父文件夹。在elevenslab中应该有两个类文件:CardTester.classCard.class

然后你应该运行以下命令:

java -cp . elevenslab.CardTester

答案 1 :(得分:0)

请注意,您必须在类中包含程序包名称。如果没有在环境变量或类似的东西中设置类路径,也必须设置类路径。

java -cp .;.. elevenslab.CardTester

但是,如果您没有名为" elevenslab"的目录。我不确定类搜索算法会如何处理这个问题,所以我可能会给你一个不完整的答案。