私はJavaのコードだけは書けないプログラマ、だったのだが、最近Javaを使わせられるヤバそうな仕事につくことに。Javaと言えばSpring Frameworkです。フレームワーク部分を無駄にXMLで書くやつね。 その前に。 まあしょうがないので最初にHelloWorld、と思ったのですが、これが動かない! なんでHelloWorldが動かないのよ、と。
package main;
public class Main{
public static void main(String[] args){
System.out.println("Hello");
}
}
これをMain.javaという名前で作って、
- javac Main.java
- java Main
- エラー: メイン・クラスMainが見つからなかったかロードできませんでした
ふざけてるんですかこのクソ言語は。いや見つけろよ。そこにあるでしょ。 悩みに悩みました。 Javaのpackage文は厳密なもので、パッケージ名として表現されたシンボルとそこに至るディレクトリ構造は完全に一致していなければなりません。これはpackage文にかぎらず、ファイル名はクラス名と一致していなければならない。そんなクソ仕様でみんなプログラム書いてたのかかわいそうに。 正解はプログラムの中ではなく、外にあったのだ。