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

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

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

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Raspbian

Raspbianは、DebianベースのRaspberry Pi用ディストリビューション。ハードウェア浮動小数点演算を有効にすることが可能で、Webブラウズなどの速度を向上できます。

JUnit

JUnitは、Javaで開発されたプログラムのユニットテストを行うためのアプリケーションフレームワークです。簡単にプログラムのユニットテストを自動化することができ、結果もわかりやすく表示されるため効率的に開発時間を短縮できます。

Java

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

Apache Ant

Apache Antは、開発環境(OS等)に依存しにくい、Javaプロジェクト用のビルドツールです。

Q&A

解決済

1回答

3050閲覧

JUnitのjarを使用してコンパイルできない

yukkuri

総合スコア624

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Raspbian

Raspbianは、DebianベースのRaspberry Pi用ディストリビューション。ハードウェア浮動小数点演算を有効にすることが可能で、Webブラウズなどの速度を向上できます。

JUnit

JUnitは、Javaで開発されたプログラムのユニットテストを行うためのアプリケーションフレームワークです。簡単にプログラムのユニットテストを自動化することができ、結果もわかりやすく表示されるため効率的に開発時間を短縮できます。

Java

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

Apache Ant

Apache Antは、開発環境(OS等)に依存しにくい、Javaプロジェクト用のビルドツールです。

0グッド

1クリップ

投稿2018/12/06 10:48

編集2018/12/07 13:02

前提・実現したいこと

現在、ant 及び JUnit も学習をしています。
コンパイル、その後実行をするところまではできましたが、
エラーが発生して、進みません。

発生している問題・エラーメッセージ

$ ant UnitTest Buildfile: build.xml versionInfo: [echo] ------------------------------------------ [echo] Jyl Library project [echo] OS name = Linux [echo] Java version = 1.8.0_65 [echo] Java VM version = 25.65-b01 [echo] Ant version = Apache Ant(TM) version 1.9.9 compiled on March 1 2017 [echo] ------------------------------------------ compile: [javac] Compiling 2 source files BUILD FAILED // ここがエラー build.xml:20: Reference ./jlib/junit.jar not found. Total time: 1 second

該当のソースコード

build.xml

XML

1<project name="Jyl Library" default="versionInfo" basedir="."> 2 3 <target name="versionInfo"> 4 5 <echo message="${user.name}'sData${line.separator}"/> 6 <echo message=""/> 7 <echo message="------------------------------------------"/> 8 <echo message="${ant.project.name} project"/> 9 <echo message="OS name = ${os.name}"/> 10 <echo message="Java version = ${java.version}"/> 11 <echo message="Java VM version = ${java.vm.version}"/> 12 <echo message="Ant version = ${ant.version}"/> 13 <echo message="------------------------------------------"/> 14 15 </target> 16 17 18 <target name="compile" depends="versionInfo"> 19 20 <javac srcdir="org" classpathref="./jlib/junit.jar" debug="true" includeAntRuntime="false"/> 21 22 </target> 23 24 25 <target name="UnitTest" depends="compile"> 26 27 <junit> 28 29 <formatter type="xml"/> 30 31 <classpath> 32 33 <fileset dir="." includes="junit.jar"/> 34 35 </classpath> 36 37 <test name="org.jyl.base.utest.JylFrameTest.java"/> 38 39 </junit> 40 41 </target> 42 43</project>

試行錯誤したあと

<project name="Jyl Library" default="versionInfo" basedir="."> <path id = "junit"> <pathelement location="/home/pi/Desktop/JylLibrary/junit.jar"/> </path> <target name="compile" depends="versionInfo"> <javac srcdir="org" debug="true" includeAntRuntime="yes"> <classpath> <path refid="junit"/> </classpath> </javac> </target> <target name="UnitTest" depends="compile"> <junit> <formatter type="xml"/> <classpath> <fileset dir="." includes="junit.jar"/> </classpath> <test name="org.jyl.base.utest.JylFrameTest.java"/> </junit> </target> </project>

試したこと

classpath や パスを絶対パスにしてみたりした -> 実行できたものもあったが
junit.jar が見つかっていないものと思われるエラー( パッケージが見つかりません... ) が出た

stackoverflow に似たような例があったのですが、知識不足でよくわかりませんでした。

実行結果はパスやユーザー名を消していますが、パスが存在していることは確認しています。

補足情報(FW/ツールのバージョンなど)

Raspberry pi の Raspbian を使用しています。
実行結果にもいくつか情報は出しています。

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

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

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

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

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

guest

回答1

0

ベストアンサー

classpathclasspathref を間違えてませんか?

追記

junit task の設定

javacclasspath/path@refid が javac@classpathref の設定と同じくなる(maven で ant タスクつくるからまともに最近かいてないよな)

<javac destdir="${maven.build.testOutputDir}" nowarn="false" debug="true" optimize="false" deprecation="true" target="1.1" verbose="false" fork="false" source="1.3"> <src> <pathelement location="${maven.build.testDir.0}"/> </src> <classpath> <path refid="build.test.classpath"/> <pathelement location="${maven.build.outputDir}"/> </classpath> </javac>

javac@classpathrefjavac/classpath/path@refid に設定するのが

<path id="build.test.classpath"> <pathelement location="${maven.repo.local}/junit/junit/4.12/junit-4.12.jar"/> <pathelement location="${maven.repo.local}/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar"/> </path>

で指定した path@id となります。

投稿2018/12/07 00:19

編集2018/12/07 11:58
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

yukkuri

2018/12/07 05:15

classpath でもエラーでした。 それ以前に、JUnit.jarに パッケージがない と出ているクラスがありませんでした。 ただ、自分で作ったクラスも存在しないとエラーの出ている状態です。
yukkuri

2018/12/07 08:59

classpath や pathelement を使用したら、エラーが変わりました。 Desktop/JylLibrary/build.xml:20: Compile failed; see the compiler error output for details. です。また、javac に encoding="utf-8" や includeAntRuntime="yes" にしてみましたが、結果は変わりませんでした。
yukkuri

2018/12/07 11:51

ん?javac でエラーが出ているのですが、なぜ<junit>なのでしょうか。また、いろいろ試行錯誤したソースを貼り忘れたので、貼っておきます。
退会済みユーザー

退会済みユーザー

2018/12/07 11:56

ああ、 javac も junit も同じだよ javac 側に差し替えるかw
退会済みユーザー

退会済みユーザー

2018/12/07 11:58

違うものだとおもってるようだけど javac タスク java タスク junit タスク の必須部分は全部一緒よ
yukkuri

2018/12/07 13:05 編集

教えてもらったとおり追記と思うのですが、コンパイルでエラーが出てしまいます。シンボルを見つけられません です。また、テストクラスのパッケージを移動したのですが、同パッケージのテスト元のクラスも取得できていないようです。
yukkuri

2018/12/07 13:14

そういえば、できるかな、と思ってコマンドラインでも実行してみました。その結果、*を使用し全てコンパイル->JUnit関係だけのエラー Testクラスだけコンパイル->JUnit関係+同パッケージのクラスがない でした。
yukkuri

2018/12/08 08:15

追記:実はJUnit3.8.1だったのですが、ネットを参考にしてJUnit4を使用したら、JUnit関係のエラーはなくなりました。
yukkuri

2018/12/08 08:25 編集

解決しました!ここまでありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問