如何使用命令行编译具有多个文件的java

我对爪哇和 Linux 很陌生。我不能使用IDE,但我已经安装了jdk(显然)。我有三个.java文件,我想编译。一个是主代码文件和两个小类。如何使用终端编译它们?这些文件称为:


主要.java

对象.java(编译时的对象.class)

生活.java (编译时.class生活)

对象.java和生活.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;

在主.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我想使用的所有文件还是只有主.java文件?main.java编译没有错误,当我不尝试导入其中一个类。如果我必须使用.jar文件,请解释并给出一个例子


江户川乱折腾
浏览 147回答 2
2回答

偶然的你

您的文件名必须与类名匹配,例如,如果您有一个文件名,则必须命名为 。请注意此处的相同字符大小写。如果使用 in ,则还必须将文件放在子目录中(例如 )。class Living {...Living.javapackage xyz;Living.javaxyzxyz/Living.java导入将由 完成,情况相同。在 中使用 时,必须使用 。不需要导入同一包中的类。import Living;package xyz;Living.javaimport xyz.Living;通过使用 或 与包 一起编译文件。将生成 / 文件。javac Living.javajavac xyz/Living.javajavacLiving.classxyz/Living.class与 相同。Main.java要运行类主方法,您必须运行具有类名的可执行文件,其中包含该方法,例如 (或者如果主有一个)。javastatic void main(...)java Mainjava xyz.Mainpackage xyz;永远不要创建一个,因为已经保留...Object.javaObject顺便说一句:也许您遵循在线提供的众多教程之一,以初步了解java...

MYYA

正如@Arnaud评论的那样:“请注意,如果所有三个类都在同一个包中,则无需将它们导入代码中”在这种情况下,我不需要导入这些类,并且不导入工作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java