关于通过终端javac编译Java

问题描述 投票:0回答:1

我是一个Java新手,刚开始在大学里学习它,我的班级正在使用NetBeans,但我想使用VSCode。

教授告诉我们每个Java文件应该从以下开始:package nameofthepackage这样Java知道我创建的类(文件)属于哪个包。

所以我总是创建这个结构:我创建一个具有主类名称的文件夹,在这个文件夹中我创建了一个存储Java文件的src文件夹。例如:MyJavaProject / src / MyJavaProject.java

我总是将主.Java文件命名为与项目文件夹名称相同。

当我编译时,我使用带有-cp参数的javac来指定src文件夹是classpath文件夹,它应该在那里查找我创建的.Java文件。我也总是告诉javac使用* wildcard编译src文件夹中的所有文件。

问题是,在我的.Java文件之上有这一行,javac编译所有文件,但是我无法执行字节码,因为它抱怨它无法找到我创建的类,甚至是主类。

当我从文件顶部删除包行时,我可以编译并运行代码。

到目前为止它很好,但对于任何更复杂的项目,这将是非常烦人的。

任何想法如何解决这个问题?

java compiler-errors classpath
1个回答
0
投票

您需要指定包含main函数的类的全名(包)。

假设类MyJavaProject是包含你的main的那个,那将是:

java nameofthepackage.MyJavaProject

假设你用它构建它

javac -d . MyJavaProject.java

它将在目录结构中创建目标类,如:

nameofthepackage\MyJavaProject.class
© www.soinside.com 2019 - 2024. All rights reserved.