当前位置: 首页 > 面试题库 >

运行Java程序

陆弘光
2023-03-14
问题内容

我看了一些其他的SO问题,没有找到任何解决我问题的方法…我有一个Main.java文件(如下)和一个OthelloLib.jar文件,没有关联的源文件。

运行javac Main.java失败,并

Main.java:8:找不到符号
符号:类SimplePlayer
位置:班级主
        OthelloPlayer p1 =新的SimplePlayer();

还有更多错误。SimplePlayer和BetterPlayer在jar中定义。我如何告诉Java这个罐子?这个命令:javac -classpath .:OthelloLib.jar -g Main.java不会引起错误,但是我仍然不知道如何运行程序。如果我运行java -classpath .:OthelloLib.jar Main,java会抱怨:

Exception in thread "main" java.lang.NoClassDefFoundError: TimeoutException

但是TimeoutException.java与Main.java在同一目录中。

我不知道在哪里可以找到像这样的基本Java东西,所以我在这里!

public class Main {
  public Main() { }
  public static void main(String[] args) {
    OthelloPlayer p1 = new SimplePlayer();
    OthelloPlayer p2 = new BetterPlayer();
    OthelloObserver o = new OthelloSimObserver();

    // Create an untimed game
    OthelloGame g = new OthelloGame(p1, p2, o);
    System.out.println("Starting game");
    g.run();
  }
}

问题答案:

你跑

javac -classpath .:OthelloLib.jar Main.java

进行编译,然后

java -classpath .:OthelloLib.jar Main

在每种情况下,该-classpath .:OthelloLib.jar选项都告诉Java在哪里可以找到SimplePlayer以及您需要的其他类。它不知道自己查看JAR文件。而且您确实需要告诉编译器和虚拟机在哪里寻找这些类。

编辑
:好像您添加了一些有关TimeoutException我写这篇文章以来的内容…您还记得编译TimeoutException.java吗?该TimeoutException.class文件是否位于与该目录相同的目录中Main.class



 类似资料:
  • 万事知其然,要知其所以然,所以本节带大家来详细了解一下 Java 程序的执行过程。 从《 使用记事本编写运行Java程序》一节的案例可以看出, Java 程序的运行必须经过编写、编译和运行 3 个步骤。 编写:是指在 Java 开发环境中进行程序代码的输入,最终形成后缀名为 .java 的 Java 源文件。 编译:是指使用 Java 编译器对源文件进行错误排査的过程,编译后将生成后缀名为 .cl

  • 问题内容: 您将如何依次执行三个线程?例如。线程1,线程2,线程3。不可能将一个线程的引用传递给另一个线程并从run()方法调用。 因此代码应如下所示: 并应该把 这可以通过使用ThreadPoolExecutor并使用阻塞队列来实现,但即使那样也不是可以接受的答案。 问题答案: 在java.util.concurrent包中使用ExecutorService。更精确地使用

  • 我在目录位置/home/oracle/naresh 文件可插入。java,可插入。类,runjava。sh,ojdbc6。jar位于/home/oracle/naresh目录位置 InsertToTable.java是将数据插入到表中的文件。它在运行时利用ojdbc6.jar。当独立运行下面的外壳脚本时,java将成功运行并将数据插入到表中。 从cron运行相同的shell脚本时,java文件未运

  • 嗨,我是新的Docker和尝试写一个新的图像从头开始。我编写这个dockerFile是为了编译和运行一个在同一个目录中可用的简单java程序。 这是DockerFile。 Docker构建成功,如下所示

  • 问题内容: 所以我在这里有一个菜鸟般的时刻,我以前从未使用过命令行来运行Java程序,但现在我需要。我遇到的问题是,当我尝试运行程序时,出现ClassNotFoundException。我的课叫做OmadUpdate。我已经使用javac命令将OmadUpdate.java文件编译为OmadUpdate.class。我已经检查了目录,并且它们都绝对存在,但是当我运行java OmadUpdate命

  • 我下载了一个java程序,它由两个文件夹src和classes组成,分别包含源文件和类文件。现在,src和classes文件夹包含几个嵌套的子文件夹,其中最后一个子文件夹分别包含源文件和类文件。更准确地说,源文件和类文件的路径是src/edu/univ/。java和classes/edu/univ/。班假设包含main函数的文件是main。java,如何从命令行运行此程序。 我尝试过: 我也尝试过