【问题标题】:Java command to run the main class运行主类的Java命令
【发布时间】:2019-08-19 12:34:56
【问题描述】:

我已经有一段时间没有接触 Java 了,需要一些关于基本知识的帮助。

我有以下项目结构:

没有清单文件等,它只是一个原始文件夹结构。

我想知道从根文件夹Data Structures - Java 编译这些 java 类的命令和执行编译类的命令。

我试过了

javac -d build com.codesuman.datastructures.Main

这第一次成功,但在下一次尝试失败。

提前致谢。

【问题讨论】:

  • but failed 怎么样?错误信息是什么?

标签: java command javac


【解决方案1】:

我不明白它是如何工作的,即使是一次:

javac -d build com.codesuman.datastructures.Main

javac 中,最后一个参数是“源文件”。它必须根据文件系统位置指定要编译的java源的位置:即文件或目录。
但是 com.codesuman.datastructures 指的是一个 java 包。预计会有这样的事情:com/codesuman/datastructures/Main.java

所以,要在build 目录中编译该类,请执行以下操作:

javac -d build com/codesuman/datastructures/Main.java

但如果Main.java 依赖于其他类,根据您的快照看起来可能,您还需要编译这些类。
因此,在这种情况下,更惯用的方法是:

javac -d build com/codesuman/datastructures/*.java

但要注意子文件夹未编译。

【讨论】:

  • 嗯,这很有意义,当我从 src 文件夹执行 javac 命令时它起作用了。要添加如果我想从外部 src 文件夹构建我应该做什么说我想在根文件夹中并执行javac 命令?
  • 您可以使用-cp src 指定类路径。
  • 我的理解是将 -cp 用于java 命令。我的问题是如何直接从src 文件夹外部使用javac 命令。谢谢。
  • cp 既适用于javac 也适用于java。您有编译时类路径和运行时类路径。因此,对于您的问题,也请使用cp
  • 不客气。你也有-sourcepathstackoverflow.com/questions/2441760/…
【解决方案2】:

主类似乎在线性文件夹内
这应该可以完成工作javac -d build com.codesuman.datastructures.linear.Main

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-23
    • 2014-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多