- ベストアンサー
パッケージについて
Javaのソースの頭にpackage ***** と記述されている場合があります。 そもそもpackageとは何のためにあるのでしょうか? コンパイルするためだけでなく、実行時にも重要な要素なのでしょうか? packageのしくみについてお詳しい方、教えてください。
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- パッケージ関連のエラー
パッケージが含まれるプログラムでのエラーの要因は何がありますか? コンパイルはできたんですが、 エラー:メイン・クラスdig.CalcDigを検出およびロードできませんでした。 と表示されます。 何度も見返しましたが、 ソースコードに書かれたパッケージと同じフォルダに入れてある 名前も間違ってない java フォルダ名.メインクラス名で実行している です。
- 締切済み
- Java
- Java:packageについて
いつもお世話になっております。 Javaのpackage機能について教えていただけますでしょうか。 ただいまJavaの勉強中で、本を購入し、それを基にソースを書いたり動かしております。 その中にpackage機能について説明とサンプルソースがあるのですが、 本のまま書いてもエラーで動きません。本とソースを見比べても相違が見られないため 何が原因かも分からず、困っております。 内容 ・Cドライブ直下にwork3というフォルダを作成 ・work3直下にMain.javaを作成する。 ・work3の中にconverterというフォルダを作成する。 ・converterフォルダ内にDollar.javaとEuro.javaを作成する。 ・コマンドプロンプトにてc:\work3に移動し、Javac **.javaを実行後、java Mainを実行する。 コンパイルは成功し、それぞれのclassファイルは作成されております。 実行すると C:\work3>java Main Exception in thread "main" java.lang.NoClassDefFoundError: Main (wrong name: con verter/Main) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(Unknown Source) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$000(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) Could not find the main class: Main. Program will exit. とエラーが出て実行されません。 実際のソースです。 ****************** package converter; public class Dollar { public static int toYen(int dollar){ return dollar * 90; } } ****************** package converter; public class Euro { public static int toYen(int euro){ return euro * 120; } } ****************** package converter; class Main { public static void main(String[] args){ System.out.println("1ドルは" + Dollar.toYen(1) + "円です。"); System.out.println("1ユーロは" + Euro.toYen(1) + "円です。"); } } ****************** ちなみにですが、3つのソースはjarファイルの実習で使用し、うまく動いてくれました。 packageの実習でpackage ***を一行追加しただけです。 よろしくお願いいたします。
- ベストアンサー
- Java
- 同一パッケージ内の継承について
同一パッケージ内で継承したクラス Test2.java をコンパイルすると「シンボルを見つけられません シンボル:クラス Test1」とエラーになります。 --------Test1.java------- package test; public class Test1{ メソッド } ------------------------- --------Test2.java------- package test; public class Test2 extends Test1{ メソッド } ------------------------- Test1.java,Test2.javaとも同一フォルダ(D:\java\test)にあります。 ちなみにカレントディレクトリをD:\java\testにして javac Test2.java でコンパイルしようとしています。 同一パッケージ内のクラスを継承するというのはおかしなことなんでしょうか?また、コンパイルの仕方もあわせてご教示願えれば助かります。 よろしくお願いします。
- ベストアンサー
- Java
- XMLの構文でJAVAを実行できるパッケージはありますか
AntとかではなくてJAVAソースコードの変わりにあるXMLのDTDやスキーマを利用してXMLを記述して、JAVAのエンジンを動作させるものってありますか? できれば、パッケージ自体はJAVAで作られたオープンソースフリーウェアだといいです。 できれば、RDBを扱うときも同じようにSQLを扱う代わりにXMLを記述して動作できるものはありますか。
- ベストアンサー
- Java
- packageアクセス修飾子をつけてもよいか?
アクセス修飾子をつけない場合のデフォルトは「同一パッケージ内からのみアクセスできる」ですが、 修飾子として明示的に「package」というのをつけてもコンパイル、実行はできますでしょうか?
- ベストアンサー
- Java
- アプレットでパッケージ指定した際の実行方法を教えてください。
タイトルの通りです>< 例えば次のようなプログラムがあったとします。 package draw; import java.applet.Applet; import java.awt.Color; import java.awt.Graphics; /* <applet code="BackGroundColor.class" width="200" height="200"> </applet>*/ public class BackGroundColor extends Applet { public void paint(Graphics g) { setBackground(Color.cyan); setForeground(Color.lightGray); g.fillOval(10, 10, 180, 100); } } 面倒なのでタグはソース内に書き込みます。 これをアプレットビューアで確認するときに appletviewer BackGroundColor.java とやると「アプレットは初期化されていません」と怒られるわけです。 ですが、「package draw;」を消して、コンパイル後、実行すると 見事成功します。 パッケージ指定したときの実行方法を教えてください><
- ベストアンサー
- Java
- パッケージの仕組みについて
こんにちは。どうもお世話になります。 自分でパッケージを作るとき(あまり作ったことはないのですが、)Aフォルダの下にBフォルダとCフォルダを作ると、そのパッケージにアクセスする時には、A.BもしくはA.*でBフォルダにアクセスできますよね。 しかし、java.awt.event はなぜ、java.awt.* では駄目なのでしょうか? その辺の仕組みについて知りたいです。 誰か分かる方がいましたら、教えてください。よろしくおねがいします。
- ベストアンサー
- Java
- パッケージ内でコンパイルできない
パッケージを作成して,以下のようなディレクトリ構成にしました. . ├── Sample.java └── vehicle ├── MiniCar.java ├── SuperCar.java └── Vehicle.java vehicleディレクトリ内で $ javac SuperCar.java このようにコンパイルしました.ですが, SuperCar.java:3: シンボルを見つけられません。 シンボル: クラス Vehicle public class SuperCar extends Vehicle { ^ エラー 1 個 このようなエラーが出力されました. 同じディレクトリにあれば,ファイルを見つけに行ってくれると思いましたが, なぜコンパイルできないのでしょうか? #ちなみに,階層を1つ登って #$javac Sample.java #これはコンパイルできて,実行もできました. -- Sample.java -- import vehicle.*; public class Sample { public static void main(String[] args) { MiniCar mini = new MiniCar(2); SuperCar scar = new SuperCar("Red"); } } -- MiniCar.java -- package vehicle; public class MiniCar extends Vehicle { int num; public MiniCar(int num) { super(5,10); this.num = num; } } -- SuperCar.java -- package vehicle; public class SuperCar extends Vehicle { String color; public SuperCar(String color) { super(10, 20); this.color = color; } } -- Vehicle.java -- package vehicle; public class Vehicle { private int wheel; private int wheelDiameter; public Vehicle(int wheel, int wheelDiameter) { this.wheel = wheel; this.wheelDiameter = wheelDiameter; } }
- ベストアンサー
- Java
- javaのパッケージについての質問です。
すっきりわかるjava入門という本を参考にjavaを勉強しているのですが、 6.3パッケージを利用する という項目でサンプルコードに従って同じファイルの中に package calcapp.main; public class Calc{ public static void main(String[]args){ int a=10;int b=2; int total=calcapp.logics.CalcLogic.tasu(a,b); int delta=calcapp.logics.CalcLogic.hiku(a,b); System.out.println("足したら"+total+"引いたら"+delta); } } と 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); } } という、二つの違うパッケージに入ったソースコードを作って、コンパイルしてみたのですが、 コマンドプロンプトに、javac CalcLogic.javaと打つ方は上手くいくのですが javac Calc.javaの方はパッケージcalcapp.logicsは存在しません、と言われ上手くいきません。 また、javac CalcLogic.java Calc.javaと打つとコンパイルは上手くいくのですが java Calcはexception in thread"main"java.lang.NoClassDefFoundErrorとでて上手くいきません。 長文の上足りない情報があったりするかもしれませんがわからなくて困っているのでどなたか教えていただけると 助かります。よろしくお願いします。
- ベストアンサー
- Java
- Twitter歴半年の音楽アカウントがフォロワーによって鍵アカにされることがあります。応援や共感の気持ちを込めていいねを押しているが、うっとうしいのか心配です。
- SNSの付き合いは気にしない方が良いのか悩んでいます。半年以上前に彼女をフォローし、頻繁に鍵アカになります。
- Twitterを利用する方々の意見を聞きたいです。自分の行動がうっとうしいと思われているのかどうか気になります。
お礼
ありがとうごじました。