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

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

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

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

Q&A

解決済

1回答

647閲覧

パッケージに属したクラスファイルをクラスローダーに読み込んでもらうには

Casablanca_mtg

総合スコア209

Java

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

0グッド

0クリップ

投稿2018/05/26 04:34

編集2018/05/26 06:06

お世話になります
作ったCalc.javaとCalcLogic.javaをコンパイルしようとしてもできないのは???
Calc.jav

package calcapp.main; import calcapp.logics.*; public class Calc { public static void main(String[] args) { int a = 10; int b = 2; int totle = CalcLogic.tasu(a, b); int delta = calcapp.logics.CalcLogic.hiku(a, b); System.out.println("足すと" + totle + ", 引くと" + delta); } }

CalcLogic.java

package calcapp.logics; public class CalcLogic { public static int tasu(int a, int b) { return(a + b); } public static int hiku(int a, int b) { return(a - b); } }

イメージ説明

C:\Users\mtg-1>cd C:\work\calcapp\main
C:\work\calcapp\main>javac -encoding utf-8 Calc.java CalcLogic.java
javac: ファイルが見つかりません: CalcLogic.java
使用方法: javac <options> <source files>
使用可能なオプションのリストについては、-helpを使用します

C:\work\calcapp\main>javac -encoding utf-8 Calc.java
Calc.java:2: エラー: パッケージcalcapp.logicsは存在しません
import calcapp.logics.*;
^
Calc.java:6: エラー: シンボルを見つけられません
int totle = CalcLogic.tasu(a, b);
^
シンボル: 変数 CalcLogic
場所: クラス Calc
Calc.java:7: エラー: パッケージcalcapp.logicsは存在しません
int delta = calcapp.logics.CalcLogic.hiku(a, b);
^
エラー3個

C:\work\calcapp\main>
どうしてこのようにエラーになるのでしょうか?
ご教授ください
treeを追加しました
イメージ説明

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

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

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

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

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

guest

回答1

0

ベストアンサー

本件でいえばコンパイルする際の作業ディレクトリーが問題だと思います。workディレクトリーで

$ javac javac -encoding utf-8 calcapp\main\Main.java

などとしてやればうまくいくんじゃないかと思います。

なおjavacによりパッケージ付きのソースをうまくコンパイルできないという件は過去類似の質問が何度かよせられてます。

https://teratail.com/questions/126149
https://teratail.com/questions/96714
https://teratail.com/questions/95357

いずれもjavacのオプションの把握不足です。パッケージ階層ありのソースをコンパイルするのはjavacでやるにはちょっとメンドクサイのです。パッケージ階層に合ったディレクトリーを作成しそこへソースファイルを配置し、パッケージ階層の根のディレクトリーでコンパイルしたり、-sourcepathオプションで指定するなどすればコンパイルすることは難しくはありません。

詳しくは前述した過去の質問の回答を参考にしてみてください。


しかし・・・正直言いますとここで悩むよりはできるだけIDEを導入することをお奨めします。
NetBeansでもEclipseでもIntelliJでも何でもよいでしょう。

自分は普段IDEを使います。javacはめんどくさくて間違い易いので使いません。javacの使い方を覚えるのが無駄ということはないのですが、それを頑張って覚えたとしても実はすぐに必要というわけでもないと思います。IDEを使っていればIDEの方でよきに計らってくれるため普段はそう気にする必要がないためです。それよりはIDEの使い方やJavaの言語仕様、ライブラリーの使い方、デバッグの仕方等々の学習に注力した方が有意義かも知れませんよ?覚えることは山ほどありますので!w;

(少々雑なコメントですね。スミマセン)

投稿2018/05/26 05:06

KSwordOfHaste

総合スコア18392

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

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

Casablanca_mtg

2018/05/26 06:16

ありがとうございます。Schooの授業でEclipseの導入の学習はしました。 installも出来ています。ご指摘の通りだと理解はしておりますが ご指導の中で”コンパイルする際の作業ディレクトリーが問題”この部分がよく理解できていなくってTreeを作ってみました。間違っていそうな気もしますのでお教えください。AndroidStudioの基本であるjavaを勉強始めました。そして躓いてしまっています
KSwordOfHaste

2018/05/26 06:30

> C:\Users\mtg-1>cd C:\work\calcapp\main\ これでmainディレクトリーへ移動していますよね?このcdで移動している「現在いるディレクトリー」のことを作業ディレクトリ(working directory)と呼びます。質問者さんはmainディレクトリーを作業ディレクトリーにして以下のコマンドを打ち込んでしまってます。 > C:\work\calcapp\main>javac -encoding utf-8 Calc.java CalcLogic.java それが間違いという指摘です。workディレクトリーへcdして自分の回答のようにしてみてください。
Casablanca_mtg

2018/05/26 06:55

ありがとうございます 試しました。C:\work>javac -encoding utf-8 calcapp\main\Calc.java C:\work>java Calc エラー: メイン・クラスCalcが見つからなかったかロードできませんでした コンパイルはできましたがjavaが実行できませんでした
KSwordOfHaste

2018/05/26 07:03

さて、ここで私が挙げたいくつかの過去の質問のリンクを参考にしてみてはいかがでしょうか?少なくともそれらをよく読んでやり方を把握してみてください。
Casablanca_mtg

2018/05/26 07:07

出来ました C:\work>java -cp c:\work calcapp.main.Calc 足すと12, 引くと8 ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問