我对Java和Linux很陌生。我不能使用IDE,但我已经安装了jdk(显然)。我有三个要编译的.java文件。一个是主代码文件,另外两个是小类。我如何使用终端进行编译? 这些文件称为:
- main.java
- object.java(编译时为Object.class)
- living.java(编译时为Living.class)
object.java和living.java现在只有我要调用的构造函数
我尝试过
javac main.java #this seems to be the right one
javac main.java object.java living.java
javac main.java Object.class Living.class
在终端和
import object.java;
import living.java;
import Object.class;
import Living.class;
import object;
import living;
import Object;
import Living;
在main.java文件中
但似乎没有任何作用
当我使用
import Living;
在代码中它告诉我它错过了一个;或。
,当使用预编译时
import Living.class
在我得到的代码中
error: class, interface, or enum expected
import <Object.class>;
在终端中,当我尝试
import living.java
在我得到的代码中
error: package living does not exist
import living.java;
在终端
那我在做什么错呢?我必须导入预编译的类或Java代码文件吗?我必须告诉javac我要使用的所有文件还是仅main.java文件?当我不尝试导入其中一个类时,main.java编译无错误。如果我必须使用.jar文件,请解释并给出示例
答案 0 :(得分:1)
您的文件名必须与类名匹配,例如如果您有class Living {...
,则必须将文件名命名为Living.java
。请注意此处使用相同的字符大小写。如果您在package xyz;
中使用Living.java
,则还必须将文件放在子目录xyz
中(例如xyz/Living.java
)。
由import Living;
完成导入,情况相同。在package xyz;
中使用Living.java
时,必须使用import xyz.Living;
。
不需要导入同一包中的类。
您可以使用javac Living.java
或软件包javac xyz/Living.java
来编译文件。 javac
将产生Living.class
/ xyz/Living.class
文件。
与Main.java
相同。
要运行类main方法,您必须运行带有类名的java
可执行文件,其中包含static void main(...)
方法,例如java Main
(如果Main具有java xyz.Main
,则为package xyz;
)。
切勿创建Object.java
,因为Object
已被保留...
顺便说一句:也许您可以遵循在线上提供的许多教程之一,以快速了解Java ...
答案 1 :(得分:0)
@Arnaud评论:“请注意,如果所有三个类都在同一个程序包中,则无需在代码中导入它们”
在这种情况下,我不需要导入这些类,而无需进行导入工作。