我是一名Java新手,刚开始在大学学习,我的班级正在使用NetBeans,但我想使用VSCode。
教授告诉我们每个Java文件应该从以下开始: 包名称包装 这样Java知道我创建的类(文件)属于哪个包。
所以我总是创建这个结构: 我创建了一个包含主类名称的文件夹,在这个文件夹中我创建了一个存储Java文件的src文件夹。例如: MyJavaProject / SRC / MyJavaProject.java
我总是将主.Java文件命名为与项目文件夹名称相同。
当我编译时,我使用带有-cp参数的javac来指定src文件夹是classpath文件夹,它应该在那里查找我创建的.Java文件。 我也总是告诉javac使用* wildcard编译src文件夹中的所有文件。
问题是,在我的.Java文件之上使用这一行,javac会编译所有文件,但是我无法执行字节码,因为它抱怨它无法找到我创建的类,甚至主要的一个。
当我从文件顶部删除包行时,我可以编译并运行代码。
到目前为止它还不错,但对于任何更复杂的项目来说,这真的很烦人。
任何想法我该如何解决这个问题?
答案 0 :(得分:0)
您需要指定包含main函数的类的全名(带包)。
假设班级MyJavaProject
是包含你的主要的,那就是:
java nameofthepackage.MyJavaProject
这假设您使用
构建它javac -d . MyJavaProject.java
它将在目录结构中创建目标类,如:
nameofthepackage\MyJavaProject.class