Java 找不到主类
此java代码应该可以工作,但它给出了一个错误:Java 找不到主类,java,main,Java,Main,此java代码应该可以工作,但它给出了一个错误: no main classes found. 我知道没有专门的“publicstaticvoidmain”类,但我这里不需要,对吗?我正在使用NetBeans IDE public enum Face { TWO(2), THREE(3), FOUR(4), FIVE(5), SIX(6), SEVEN(7), EIGHT(8), NINE(9), TEN(10), JACK(11), QUEEN(
no main classes found.
我知道没有专门的“publicstaticvoidmain”类,但我这里不需要,对吗?我正在使用NetBeans IDE
public enum Face
{
TWO(2),
THREE(3),
FOUR(4),
FIVE(5),
SIX(6),
SEVEN(7),
EIGHT(8),
NINE(9),
TEN(10),
JACK(11),
QUEEN(12),
KING(13),
ACE(14);
private int cardValue;
private Face (int value)
{
this.cardValue = value;
}
public int getCardValue() {
return cardValue;
}
}
public enum Suit
{
HEARTS,
SPADES,
CLUBS,
DIAMONDS;
}
public class Card
{
private Suit suit;
private Face cardValue;
public Card (Face cardValue, Suit suit)
{
this.cardValue = cardValue;
this.suit = suit;
}
public Suit getSuit()
{
return suit;
}
public void setSuit(Suit suit)
{
this.suit = suit;
}
public Face getCardValue()
{
return cardValue;
}
public void setCardValue(Face cardValue)
{
this.cardValue = cardValue;
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
public class DeckofCards
{
private ArrayList<Card> deck;
public DeckofCards ()
{
this.deck = new ArrayList<>();
for (int i=0; i<13; i++)
{
Face value = Face.values()[i];
for (int j=0; j<4; j++)
{
Card card = new Card(value, Suit.values()[j]);
this.deck.add(card);
}
}
Collections.shuffle(deck);
Iterator<Card> cardIterator = deck.iterator();
while (cardIterator.hasNext())
{
Card aCard = cardIterator.next();
System.out.println(aCard.getCardValue() + " of " + aCard.getSuit());
}
}
}
公共枚举面
{
两(2),
三(3),
四(4),
五(5),
六(6),
七(7),
八(8),
九(9),
十(10),
杰克(11岁),
女王(12岁),
国王(13),
ACE(14);
私人价值;
私有面(int值)
{
this.cardValue=值;
}
public int getCardValue(){
返回值;
}
}
公开枚举诉讼
{
心,
黑桃,
俱乐部,
钻石;
}
公务舱卡
{
私人诉讼;
个人面值;
公共卡(面值卡、套装)
{
this.cardValue=cardValue;
这套衣服;
}
公诉状
{
反诉;
}
公开无效诉讼(诉讼)
{
这套衣服;
}
公共脸getCardValue()
{
返回值;
}
公共作废设置cardValue(票面cardValue)
{
this.cardValue=cardValue;
}
}
导入java.util.ArrayList;
导入java.util.Collections;
导入java.util.Iterator;
公营甲板
{
私人露天甲板;
公共甲板
{
this.deck=新的ArrayList();
对于(int i=0;i您将需要一个main
来运行此代码。它将编译,但在添加main
之前您将无法运行它,因为JVM不知道从哪里“开始”运行您的代码。经过一些检查后,您似乎希望在DeckOfCards()
构造函数中运行代码
请输入以下代码,它将按预期运行:
public class DeckRunner {
public static void main(String[] args) {
new DeckOfCards();
}
}
作为补充说明,您不应该在构造函数中进行带有副作用的操作。我将取出以下代码并将其放置在主方法中(在创建合适的访问器方法之后):
迭代器cardIterator=deck.Iterator();
while(cardIterator.hasNext())
{
Card aCard=cardIterator.next();
System.out.println(aCard.getCardValue()+“+aCard.getSuit()”的“+”;
}
无论您使用的是NetBeans IDE还是Eclipse IDE,您都必须知道所有java应用程序都需要main()才能运行。有时您可能找不到main,正如您所说的NetBeans。可能您使用了隐藏main()的某个框架.如何工作?main方法是应用程序的入口点。编译代码不需要方法,但开始执行时需要方法。所有Java应用程序都必须有一个public static void main
方法才能从命令行调用。例如,在命令行上说Java Foo
,classFoo
需要一个main方法。如果不使用命令行,则此方法不适用;类Bar
将编译,并且在被其他类调用时可以运行,即使没有main方法。您在哪里定义了main()
代码中的方法?您似乎对尝试执行的操作感到困惑。如果您尝试创建playingcards.jar
库,您会很好,但如果您尝试按原样执行此代码,您会遇到麻烦。
Iterator<Card> cardIterator = deck.iterator();
while (cardIterator.hasNext())
{
Card aCard = cardIterator.next();
System.out.println(aCard.getCardValue() + " of " + aCard.getSuit());
}