Javaの基本的なこと調査メモ
言語実装パターンを写経するのでjavaの環境を用意したい。 そのために調べた基本的なことをメモ。
空のプロジェクトを手で作る
EclipseなどのIDEを使えば自動で作ってくれると思うのだが、Emacsで書きたいので調べた。
コマンド1
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-simple -DarchetypeVersion=1.4
group id/artifacto idなどを聞かれる
コマンド2
もしくはこっち。参考3
mvn archetype:generate \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DinteractiveMode=false \
-DgroupId={group-id} \
-DartifactId={project-name}
こっちは引数で指定するパターン。まぁどっちでも良さそう
groupId, artifactIdについて
公式を読むと・・
- group idは、そのプロジェクトを世界中で一意に識別できるもの。よくjavaで見る、ドメインをヒックリ返した文字列のことであろう。
- artifact idは、version名を除いたjarファイルの名前だそうです
pacakgeについて
ソースの先頭にpackage
を書くとそのクラスの所属するパッケージが定義される。
package info.hotoku;
public class App{
static void main(String[] args){
}
}
このクラスを実行する場合には、
$ java info.hotoku.App
というコマンドを実行する。
パッケージ名とクラスパスの関係に注意が必要である。例えば、上のように作ったプロジェクトで
mvn compile
をした時には、target/classes/info/hotoku/App.class
というパスにクラスファイルが作成されるが、起動するときには
$ java -cp target/classes info.hotoku.App
を実行する。つまり、java
の引数に渡すクラス名には、パッケージ名のドメイン部分も含める。そして、class pathには、そのドメイン部分は含まない。
その他
mvn compile
: jarを作るmvn test
: testを実行する