質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

4816閲覧

Javaで別ディレクトリのファイルをコンパイル・実行したい

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

1クリップ

投稿2018/07/05 09:21

始めにhoge.jarというファイルがあってjavaファイル内で

java

1import hoge.hogehoge.*; 2 3Hoge a;

のように独自のクラスを利用したいです。

$ javac -cp .:hoge.jar prog1.java $ java -cp .:hoge.jar prog1

macではこのようにhoge.jarがあるディレクトリでprog1.javaをコンパイル実行できるのですが、
以下のように

hai - 1 - prog1.java
| - 2 - prog2.java
| - 3 - prog3.java
| - hoge.jar

(hai, 1, 2, 3はフォルダ)

とディレクトリ構造があったばあい
ディレクトリhaiにいながらprog1.javaやprog2.javaのコンパイル実行をやりたいです。

$ javac -cp .:hoge.jar 1/prog1.java

このようにコンパイルしディレクトリ1にprog1.classを作成し

$ java -cp .:hoge.jar -classpath 1/ prog1

のように実行したのですが

Exception in thread "main" java.lang.NoClassDefFoundError: hoge/~~

のようなエラーが出てしまいます。

やはり素直にディレクトリ1, 2, 3すべてにhoge.jarをコピーして実行は全てそのディレクトリ内でやるしかないんでしょうか

また新たにhai内にtestというディレクトリを作成し

javac -cp .:hoge.jar -d test 1/prog1.java

としprog1.classをtest下に配置し
そのtestにhoge.jarをコピーしました。
つまり
hai
|
test-hoge.jar prog1.class

のようにして

java -cp .:hoge.jar -classpath test/ prog1

実行しても同じような結果になってしまいました。

どのようにすればいいでしょうか

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mather

2018/07/05 10:08

あなたの作成したソースコードをきちんと提示して質問してください。特に prog1.java の中身は重要です。
guest

回答1

0

ベストアンサー

ディレクトリをまたいでコンパイルしたいというような要望については、自作でシェルスクリプトを書くか
Ant や Maven や Gradle などのビルドツールを使用するのがよいと思います。
お勧めは Gradleです。

以下の記事を参考にしてみてはいかがでしょうか?

投稿2018/07/05 10:26

euledge

総合スコア2404

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問