jGRASPを使用しているときに、パッケージ内のプログラムの出力が通常とわずかに異なることに気付きました。具体的には、プログラム名がクラスの先頭から始まる相対パスであるように見えました。
たとえば、ステートメントを含むJavaプログラムのpackage ch01.stacks;
場合、コンパイル出力は次のようになります。
javac -g ch01\stacks\ArrayStack.java
実行出力も同様に表示されます。
Notepad ++やgeditなど、ユーザーがプログラムをコンパイルするためのスクリプトを設定できる他のプログラムでこの動作をシミュレートする比較的簡単な方法があるかどうか疑問に思いました。
編集:申し訳ありませんが、私が話しているコンパイルスクリプトは、基本的にjavacに渡されるプログラムファイル名であることを忘れました。絶対パスは使用したくありません。可能な限り、スクリプトをjGRASPと同様に機能させたいと思います。
手元の問題をさらに明確にするために、現在のスクリプトでは、プログラムの現在のディレクトリでコンパイルされているため、パッケージ構造が問題を引き起こしていると思います。パッケージ構造に関してJavaプログラムを比較的コンパイルする方法を探しています。
つまり、プログラムを調べて探すことなく、コンパイルに必要な最上位ディレクトリ(前の例ではch01package
)を検出する方法はありますか?