gpt4 book ai didi

Java 类未找到异常

转载 作者:行者123 更新时间:2023-11-30 05:52:06 24 4
gpt4 key购买 nike

我搜索了这个问题,但找不到解决方案。

我正在运行一个为流行的 KataPokerHands 挑战创建的解决方案。我有两个类CardDeckDealer ,庄家使用一副牌。当我运行该程序时,我收到一条错误消息,指出 JVM 找不到 CardDeck由 Dealer 类调用的类,即使这两个类存在于同一目录中。

这是卡片组:

import java.util.ArrayList;
import java.util.Arrays;

public class CardDeck
{
private final ArrayList<String> deck;

CardDeck()
{
deck = new ArrayList<>();
for(int i = 2; i < 10; i++)
{
deck.add(i + "H");
deck.add(i + "D");
deck.add(i + "S");
deck.add(i + "C");
}

deck.addAll(Arrays.asList("TH TD TS TC JH JD JS JC QH QD QS QC KH KD KS KC AH AD AS AC".split(" ")));
}
ArrayList<String> getDeck()
{
return deck;
}
}

这是经销商类别:

    import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;

public class Dealer
{
int deckSize;
ArrayList<String> newDeck;
Random rand;

Dealer()
{
deckSize = 52;
newDeck = new CardDeck().getDeck();
Collections.shuffle(newDeck);
rand = new Random(42);
}

ArrayList dealHand()
{
ArrayList<String> myHand = new ArrayList<>();
int cardIndex;
for(int i = 0; i < 5; i++, deckSize--)
{
cardIndex = rand.nextInt(deckSize);
myHand.add(newDeck.get(cardIndex));
newDeck.remove(cardIndex);// remove the card picked from the deck
}
return myHand;
}
}

这是运行该程序的类,Pokergame.java:

import java.util.*;

public class PokerGame
{

public static void main(String[] args)
{

Dealer dealer = new Dealer();

ArrayList<String> PlayerOneHand = dealer.dealHand();
ArrayList<String> PlayerTwoHand = dealer.dealHand();

System.out.println("Player One's cards: " + PlayerOneHand);
System.out.println("Player Two's cards: " + PlayerTwoHand);
System.out.println();

CompareHands hands = new CompareHands(PlayerOneHand, PlayerTwoHand);
hands.compareHands(PlayerOneHand, PlayerTwoHand);
}
}

这是错误消息:

Exception in thread "main" java.lang.NoClassDefFoundError: CardDeck at Dealer.(Dealer.java:14) at PokerGame.main(PokerGame.java:9) Caused by: java.lang.ClassNotFoundException: CardDeck at java.net.URLClassLoader.findClass(URLClassLoader.java:382) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 2 more

最佳答案

很可能您没有编译 CardDeck 类,因此它不存在于 java 运行时类路径中。假设您使用 javac 命令手动执行此操作,您可以使用以下命令重新编译当前目录中的所有源文件:

javac *.java

然后运行 ​​PokerGame.main():

java PokerGame

关于Java 类未找到异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53731639/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com