简体   繁体   中英

how to compile java with multiple files using command line

I am pretty new to Java and Linux. I can't use an IDE but i have jdk installed (obviously). I have three .java files that i want to compile. One is the main code file and two small classes. how do i compile them using terminal? these files are called:

  • main.java
  • object.java (Object.class when compiled)
  • living.java (Living.class when compiled)

object.java and living.java only have a constructor for now that i want to call

i've tried

javac main.java #this seems to be the right one
javac main.java object.java living.java
javac main.java Object.class Living.class

in terminal and

import object.java;
import living.java;

import Object.class;
import Living.class;

import object;
import living;

import Object;
import Living;

in the main.java file

but nothing seems to work

when i use

import Living;

in the code it tells me that it misses a ; or .

, when using precompiled

import Living.class

in the code i get

error: class, interface, or enum expected
import <Object.class>;

in the terminal and when i try

import living.java

in the code i get

error: package living does not exist
import living.java;

in terminal

so what am i doing wrong? do i have to import precompiled classes or java codefiles? do i have to tell javac all files i want to use or only the main.java file? main.java compiles without error when i don't try to import one of the classes. And if i have to use .jar files please explain and give an example

Your file name has to match the class name, eg if you have a class Living {... your file name has to be named Living.java . Be aware of the same character casing here. If you use package xyz; in Living.java , you also have to place your file in the subdirectory xyz (eg xyz/Living.java ).

Importing is to be done by import Living; , with the same case. On using package xyz; in your Living.java , you have to use import xyz.Living; . Classes within the same package doesn't need to be imported.

You compile your files by using javac Living.java or with package javac xyz/Living.java . The javac will produce the Living.class / xyz/Living.class file.

Same with Main.java .

To run a classes main method, you have to run the java executable with the class name, which contains the static void main(...) method, eg java Main (or java xyz.Main if Main has a package xyz; ).

Never create an Object.java , since Object is already reserved...

BTW: maybe you follow one of the many tutorials available online, to get a first glance on java...

as @Arnaud commented: "Note that if all three classes are in the same package, you don't need to import them in your code"

i don't need to import these classes in this case and leaving import away works.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM