(2020-02-04更新)
Javaプログラムをコンソールから実行する方法を自分用にメモしています。 使用環境はLinux Mint 18です。
目次
コンパイルと実行
次のページを参考にさせていただきました。
【Java入門】classpathを指定して実行する方法(確認の方法も解説) | 侍エンジニア塾ブログ(Samurai Blog) - プログラミング入門者向けサイト
jUnit3 をコンソールで実行するための導入手順 (Eclipseを使わずに,Ant+jUnitDocletで頑張る) - 主に言語とシステム開発に関して
単独ファイル
Main.java
public class Main { public static void main(String[] args) { System.out.println("Hello World!"); } }
コンパイルと実行
$ javac Main.java $ java Main Hello World!
複数ファイル
Main2.javaのMain2クラスからHello.javaのHelloクラスを使用しています。
Main2.java
public class Main2 { public static void main(String[] args) { Hello hello = new Hello(); } }
Hello.java
public class Hello { public Hello() { System.out.println("Hello World!"); } }
コンパイルと実行
$ javac Hello.java $ javac Main2.java $ java Main2 Hello World!
コンパイルはjavac Main2.java Hello.java
と一度に複数ファイルを指定することもできます。
複数ファイルが別ディレクトリにある場合
Main2.javaのMain2クラスからHello.javaのHelloクラスを使用しています。 Hello.javaはhelloclassディレクトリに入っているとします。
$ tree . ├── Main2.java ├── helloclass │ └── Hello.java
$ cd helloclass $ javac Hello.java $ cd .. $ javac -classpath helloclass Main2.java
参照しているクラスファイルが同じディレクトリに無い場合には、-classpath
オプションで場所を指定します。
もし-classpath
をつけないとエラーが発生します。
$ javac Main2.java Main2.java:3: エラー: シンボルを見つけられません Hello hello = new Hello(); ^ シンボル: クラス Hello 場所: クラス Main2 Main2.java:3: エラー: シンボルを見つけられません Hello hello = new Hello(); ^ シンボル: クラス Hello 場所: クラス Main2 エラー2個
-classpath
は-cp
のように省略することができます。
JUnit
HelloTest.java
import junit.framework.TestCase; public class HelloTest extends TestCase { public void testTalk() { Hello hello = new Hello(); String s = hello.talk(); assertEquals("Hello", s); } }
Hello.java
public class Hello { public String talk() { return "Hello"; } }
junit.jarが/usr/share/javaにあるとします。
コンパイルと実行
$ javac -classpath /usr/share/java/junit.jar:. HelloTest.java Hello.java $ java -classpath /usr/share/java/junit.jar:. junit.textui.TestRunner HelloTest . Time: 0.008 OK (1 test)
クラスパス指定は-classpath /usr/share/java/junit.jar:.
になっています。
これはJUnit用に/usr/share/java/junit.jar
を、作成したファイル用にカレントディレクトリを意味する.
をコロン(:)で接続した形になっています。
(Linuxなどの場合。Windowsはセミコロン(;)で接続します。)
JUnit4の場合はjunit.jarをjunit4.jarにします。
JUnit3以前の環境ではjunit.textui.TestRunner
をjunit.swingui.TestRunner
にするとSwingを使ったGUIで結果が表示されます。