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

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

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

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

Java

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

Q&A

解決済

2回答

4051閲覧

コンパイルがうまく行きません

modonokouki

総合スコア26

JAR

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

Java

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

0グッド

1クリップ

投稿2016/02/12 13:06

avac ShapeTester.java
ShapeTester.java:8: エラー: シンボルを見つけられません
Shape [] a = new Shape[2];
^
シンボル: クラス Shape
場所: クラス ShapeTester
ShapeTester.java:8: エラー: シンボルを見つけられません
Shape [] a = new Shape[2];
^
シンボル: クラス Shape
場所: クラス ShapeTester
ShapeTester.java:9: エラー: シンボルを見つけられません
a[0] = new Point();//点,Shape型のクラス型変数であってShapeから派生したクラスのインスタンスを参照している
^
シンボル: クラス Point
場所: クラス ShapeTester
ShapeTester.java:10: エラー: シンボルを見つけられません
a[1] = new Rectangle(4,3);//長方形、Shape型のクラス型変数であってShaoeから派生したクラスのインスタンスを参照している
^
シンボル: クラス Rectangle
場所: クラス ShapeTester
ShapeTester.java:12: エラー: シンボルを見つけられません
for(Shape s: a){
^
シンボル: クラス Shape
場所: クラス ShapeTester
エラー5個

~ java_home -v
zsh: command not found: java_home
➜ ~ /.MacOSX/environment.plist
zsh: no such file or directory: /.MacOSX/environment.plist
➜ ~ /.MacOSX/environment.plist
zsh: no such file or directory: /.MacOSX/environment.plist
➜ ~ emacs zshrc~
➜ ~ emacs zshrc
➜ ~ cd eclipse
cd: no such file or directory: eclipse

➜ ~ emacs eclipse
➜ ~ emacs bash_profile
➜ ~ echo $PATH
/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
➜ ~ sudo vi .bash_profile
Password:
➜ ~ sudo vi .bash_profile
➜ ~ echo $PATH
/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
➜ ~ sudo vi .bash_profile
Password:
➜ ~ cd javajava
➜ javajava pwd
/Users/kokimadono/javajava
➜ javajava sudo vi .bash_profile
➜ javajava echo $PATH
/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
➜ javajava cd
➜ ~ sudo vi .bash_profile
➜ ~ echo $PATH
/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
➜ ~ sudo vi /etc/paths
➜ ~ echo $PATH
/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
➜ ~ sudo vi /etc/paths
➜ ~ source /etc/paths
/etc/paths:1: permission denied: /usr/local/bin
/etc/paths:2: permission denied: /usr/bin
/etc/paths:3: permission denied: /bin
/etc/paths:4: permission denied: /usr/sbin
/etc/paths:5: permission denied: /sbin
/etc/paths:6: permission denied: /Users/kokimadono/javajava
➜ ~ sudo vi .bash_profile
➜ ~ source .bash_profile
.bash_profile:1: command not found: rbenv
.bash_profile:2: command not found: rbenv
➜ ~ echo $PATH
/usr/local/bin:/Users/kokimadono/javajava:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
➜ ~ cd
➜ ~ cd javajava
➜ javajava cd kakue
➜ kakue ls
Point.class Rectangle.class Shape.class bin src
➜ kakue cd src
➜ src ls
applet gif kuruma line zukei
➜ src cd zukei
➜ zukei ls
Shape.java ShapeTester.java
➜ zukei javac ShapeTester.java

package zukei;

abstract class Shape{
abstract void draw();
//ここでは定義できないから派生したクラスで定義してくださいね
}
//スーパークラスの抽象メソッドをオーバーライドして、メソッドの本体の定義を宣言することを[メソッドを実装する]という
//点
class Point extends Shape{
Point(){}//コンストラクタ

void draw(){ System.out.println('+'); }

}

//長方形
class Rectangle extends Shape{
private int width;
private int height;
//コンストラクタ
Rectangle(int width,int height){
this.width = width;
this.height=height;
}
void draw(){
for(int i=1;i<=height;i++){
for(int j=1;j<=width;j++)
System.out.println('*');;
System.out.println();
}
}
}

package zukei;

class ShapeTester{
public static void main(String[] args){
//以下の宣言はエラー:抽象クラスはインスタンス化出来ない。もし出来たら実態のないメソッドdrawをs.draw()とかで呼び出せることになってしまう
//Shape a = new Shape();

Shape [] a = new Shape[2]; a[0] = new Point();//点,Shape型のクラス型変数であってShapeから派生したクラスのインスタンスを参照している a[1] = new Rectangle(4,3);//長方形、Shape型のクラス型変数であってShaoeから派生したクラスのインスタンスを参照している for(Shape s: a){ s.draw(); System.out.println(); } }

}

①エラー②コマンドライン(zsh)③④ファイル。コマンドラインによく
エラー: メイン・メソッドがクラスCarで見つかりません。次のようにメイン・メソッドを定義してください。
public static void main(String[] args)
またはJavaFXアプリケーション・クラスはjavafx.application.Applicationを拡張する必要があります

みたいなえらーがでるのもよくわかりません

初心者ですごく困っているので親切な方良かったら教えていただきたいです!

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

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

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

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

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

K_S_

2016/02/12 13:49

</>ボタンを押して ```ここに言語を入力 コード ``` この中にコードを書くことで質問の見通しが良くなります。 現在の状態ですと、何が質問かわかりません。 「ここに言語を入力」に「java」、 「コード」にjavaコードを書いてください。 お聞きしたいのですが、もしかすると一つのファイル「ShapeTester.java」に全てのクラスを書いているのですか?
modonokouki

2016/02/12 13:51

ご指摘ありがとうございます!今すぐ訂正します ファイルは2つに分けています、それも訂正して書き直します
guest

回答2

0

ベストアンサー

初心者であれば、1クラス1ファイルの原則を守って書いた方がいいと思います。
変則的な書き方をすると、普通なら起きないようなエラーにぶつかって時間の無駄です。
また、問題を他人に質問するときも伝わりにくいです。
Java はどうファイルに分割されているかでコードの解釈がかなり変わる言語なので、
どのコードがどのファイルに書かれているかを書くのは質問するときは必須事項です。

投稿2016/02/12 14:49

kozuchi

総合スコア1193

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

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

modonokouki

2016/02/12 14:58

確認させていただきたいのですが1クラス1ファイルでディレクトリにまとめ、インポートをうまく使えばシンボルが見つからなかったり、ロードできないなどのトラブルは起きない、環境変数は全く関係ないということで大丈夫ですか?僕的にはクラスの名前なども影響出るとかちょっと考えたのですがどうでしょうか?
kozuchi

2016/02/12 15:33

「トラブルは起きない、環境変数は全く関係ないということで大丈夫ですか」-> 大丈夫じゃないです。 どうやったところでトラブルは起きます。 ただ、多くの人と同じやり方をしていれば、その起きるトラブルの内容も、その出方も、他の人も良く出すようなものが多くなり、ネットで検索しても、人に聞いても答えが見つかりやすくなるという話です。 それから、ディレクトリについては、パッケージとディレクトリの関係を理解することがまず先決だと思います。 クラス設計とパッケージ設計をきちんとして、それにしたがって決めてください。 ただ、これはもう「初心者」のレベルの話ではないですね。 「自分は初心者で難しいことは全然わからない」と本気で思っているのなら、 勉強用のサンプルプログラムは、全てデフォルトパッケージにしてしまったほうがいいと思います。 その構成に疑問を持ち始めたら・・・もう初心者とはいえませんね。 そこまで考えるだけの知識が付いたのなら、その先は自分で考えるべきです。 わからないなら本なりWeb検索なりするべきです。 そして、それでもどうしても自分の力で対処できない問題に突き当たったとき、またここに質問にきてください。
modonokouki

2016/02/13 11:30

アドバイスありがとうございます! 正直まだ初心者の自覚はあるのでとりあえずデフォルトパッケージで作ってみます これでも本当にjavaのコードを上手くかけるようになりたいと頑張ってるつもりですがどうしてもなかなか理解できないです... ある程度環境変数などに対して知識がついてきたらその時にまたチャレンジしてみようと思います! ありがとうございました!
guest

0

以下のようにpackageのclassを利用する側にimport文を書いたら、コンパイルが通りました。

java

1[Shape.java] 2 3package zukei; 4abstract class Shape{ 5 abstract void draw(); 6} 7 8class Point extends Shape{ 9 Point(){} 10 void draw(){ 11 System.out.println('+'); 12 } 13} 14 15class Rectangle extends Shape{ 16 private int width; 17 private int height; 18 Rectangle(int width,int height){ 19 this.width = width; 20 this.height=height; 21 } 22 void draw(){ 23 for(int i=1;i<=height;i++){ 24 for(int j=1;j<=width;j++) 25 System.out.println('*');; 26 System.out.println(); 27 } 28 } 29} 30

java

1[ShapeTester.java] 2 3package zukei; 4import zukei; 5 6class ShapeTester{ 7 public static void main(String[] args){ 8 Shape [] a = new Shape[2]; 9 a[0] = new Point(); 10 a[1] = new Rectangle(4,3); 11 for(Shape s: a){ 12 s.draw(); 13 System.out.println(); 14 } 15 } 16}
$ javac ShapeTester.java $ java ShapeTester
結果 + * * * * * * * * * * * *

投稿2016/02/12 14:14

編集2016/02/12 14:31
K_S_

総合スコア419

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

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

modonokouki

2016/02/12 14:20

packageなしだとデフォルトのパッケージになると思うんですけどなんでパッケージを指定するのとしないのでコンパイルに差が出てしまうのでしょうか...?個人的には環境変数の設定がおかしいから指定したパッケージを使用してコンパイルできないのではと考えています
K_S_

2016/02/12 14:31

回答修正しました。
modonokouki

2016/02/12 14:59

参考書などを丸写しするとこのようなエラーが出てしまうのですかね....確かimport文が書いてなかった気がするので...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問