关于通过终端javac编译Java
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于通过终端javac编译Java相关的知识,希望对你有一定的参考价值。
我是一个Java新手,刚开始在大学里学习它,我的班级正在使用NetBeans,但我想使用VSCode。
教授告诉我们每个Java文件应该从以下开始:package nameofthepackage这样Java知道我创建的类(文件)属于哪个包。
所以我总是创建这个结构:我创建一个具有主类名称的文件夹,在这个文件夹中我创建了一个存储Java文件的src文件夹。例如:MyJavaProject / src / MyJavaProject.java
我总是将主.Java文件命名为与项目文件夹名称相同。
当我编译时,我使用带有-cp参数的javac来指定src文件夹是classpath文件夹,它应该在那里查找我创建的.Java文件。我也总是告诉javac使用* wildcard编译src文件夹中的所有文件。
问题是,在我的.Java文件之上有这一行,javac编译所有文件,但是我无法执行字节码,因为它抱怨它无法找到我创建的类,甚至是主类。
当我从文件顶部删除包行时,我可以编译并运行代码。
到目前为止它很好,但对于任何更复杂的项目,这将是非常烦人的。
任何想法如何解决这个问题?
答案
您需要指定包含main函数的类的全名(包)。
假设类MyJavaProject
是包含你的main的那个,那将是:
java nameofthepackage.MyJavaProject
假设你用它构建它
javac -d . MyJavaProject.java
它将在目录结构中创建目标类,如:
nameofthepackageMyJavaProject.class
以上是关于关于通过终端javac编译Java的主要内容,如果未能解决你的问题,请参考以下文章