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

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

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

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

Q&A

解決済

2回答

1656閲覧

Javaのパッケージ

waribashi

総合スコア30

Java

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

0グッド

0クリップ

投稿2018/11/01 04:24

編集2018/11/01 04:30

前提・実現したいこと

課題で二つのコードのPointクラスをmypackパッケージに所属するように変更するというものが出されました。
私が変更した点はPoint.javaに

package mypack;

を書き加え、Main.javaに

import mypack.Point;

を書き加えただけなのですが、以下のようなエラーメッセージが表示され、中々うまくいきません。
何をどう直せばいいのかもよく分かっていません。どうすればいいのでしょうか。

エラーメッセージ

C:\Users\myPC\Desktop\mypack>javac Point.java

C:\Users\myPC\Desktop\mypack>javac Main.java
Main.java:1: エラー: パッケージmypackは存在しません
import mypack.Point;
^
Main.java:5: エラー: Pointにアクセスできません
Point p = new Point(20, 20);
^
クラス・ファイル.\Point.classは不正です
クラス・ファイルmypack.Pointに不正なクラスがあります
削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。

エラー2個

該当のソースコード

Point.java

package mypack; public class Point { private int _x; private int _y; public Point(int x, int y) { _x = x; _y = y; } public void move(int x, int y){ _x = x; _y = y; } }

Main.java

import mypack.Point; public class Main { public static void main(String args[]) { Point p = new Point(20, 20); p.move(40, 10); System.out.println(p); } }

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

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

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

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

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

guest

回答2

0

Main.javaをPoint.javaより一階層上に置くようにしてください。

投稿2018/11/01 04:40

LouiS0616

総合スコア35658

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

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

waribashi

2018/11/01 04:57

上のフォルダにおいてやってみたのですが、下のようになります。 C:\Users\myPC\Desktop\kadai>javac Main.java C:\Users\myPC\Desktop\kadai>java Main.java エラー: メイン・クラスMain.javaが見つからなかったかロードできませんでした C:\Users\myPC\Desktop\kadai>cd mypack C:\Users\myPC\Desktop\kadai\mypack>javac Point.java C:\Users\myPC\Desktop\kadai\mypack>java Main.java エラー: メイン・クラスMain.javaが見つからなかったかロードできませんでした
LouiS0616

2018/11/01 05:03

実行は java Main です。
guest

0

ベストアンサー

Point.javamypackディレクトリに入っていないように思いますました。
Main.javamypackディレクトリの上のディレクトリにおいてください。

パッケージ化するクラスのみ同名のディレクトリに入れてください。

投稿2018/11/01 04:32

編集2018/11/01 04:44
dice142

総合スコア5158

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

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

waribashi

2018/11/01 04:38 編集

Point.javaとMain.javaはどちらもmypackフォルダに入っているのですが、これではダメなのでしょうか?
dice142

2018/11/01 04:42

Main.javaはmypackパッケージにはないので、mypackフォルダの上のフォルダに置いてください。
waribashi

2018/11/01 04:57

上のフォルダにおいてやってみたのですが、下のようになります。 C:\Users\myPC\Desktop\kadai>javac Main.java C:\Users\myPC\Desktop\kadai>java Main.java エラー: メイン・クラスMain.javaが見つからなかったかロードできませんでした C:\Users\myPC\Desktop\kadai>cd mypack C:\Users\myPC\Desktop\kadai\mypack>javac Point.java C:\Users\myPC\Desktop\kadai\mypack>java Main.java エラー: メイン・クラスMain.javaが見つからなかったかロードできませんでした
dice142

2018/11/01 04:58

javaコマンドの使い方が間違っています。 「java Main」です。
waribashi

2018/11/01 05:08

エラーは出ない様になったんですが出力が mypack.Point@15db9742 のようになります。これは正しいのでしょうか……? 質問ばかりですみません。
dice142

2018/11/01 05:11

オブジェクトをそのまま出力するとそうなります。 パッケージに関する質問からはハズレてしまっていますが、 PointクラスにtoStringメソッドを実装すれば任意の表示ができます。
waribashi

2018/11/01 05:29

すみません、本題から外れているのでよかったらでいいのですが、toStringメゾッドの実装方法ってどうするのでしょうか。色々調べてみたのですが分からなくて。
dice142

2018/11/01 05:37

一度こちらの質問を解決済みにして、別の質問を立てることをオススメします。 その際、どうやってみたのかとか何を参考にしたのかを踏まえて質問されると良いかと思います。
waribashi

2018/11/01 05:39

了解です。ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問