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

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

ただいまの
回答率

90.75%

  • Java

    13119questions

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

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

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 76

kasaburanka

score 123

お世話になります
作った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を追加しました
イメージ説明

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

本件でいえばコンパイルする際の作業ディレクトリーが問題だと思います。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 15:16

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

    キャンセル

  • 2018/05/26 15: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して自分の回答のようにしてみてください。

    キャンセル

  • 2018/05/26 15:55

    ありがとうございます
    試しました。C:\work>javac -encoding utf-8 calcapp\main\Calc.java

    C:\work>java Calc
    エラー: メイン・クラスCalcが見つからなかったかロードできませんでした
    コンパイルはできましたがjavaが実行できませんでした

    キャンセル

  • 2018/05/26 16:03

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

    キャンセル

  • 2018/05/26 16:07

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

    キャンセル

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

  • ただいまの回答率 90.75%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Java

    13119questions

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