import時のコンパイルエラー

このQ&Aのポイント
  • Java初心者がマニュアル通りにprinterクラスをインポートしようとするとコンパイルエラーが発生
  • printerクラスの指定方法が間違っている可能性がある
  • 環境はwin2000,java1.4.1_02
回答を見る
  • ベストアンサー

import時のコンパイルエラー

Java初心者です。 現在、あるマニュアルにより勉強をしております。 以下の様に簡単なクラスを2つ作成しようと思って おりますが、どうもマニュアル通りにやってもコンパイル エラーが発生します。 まず、以下は成功し、printer.classが作成されます。 <printer.javaの中身> public class printer { public void print() { System.out.println("printer class OK"); } } 次に、上記クラスを使用する以下のクラスのコンパイル を行うと、エラーが発生します。 <app.javaの中身> import printer; public class app { public static void main( String[] args ) { //printerクラス利用 (new printer()).print(); } } エラー内容: app.java:2: '.' がありません。 import printer; ^ どうも、インポート時のprinterクラスの指定方法が悪そうなのですが、わかりません。一応マニュアル通りに記述しているつもりです。環境はwin2000,java1.4.1_02です。以上、よろしくお願いします。 ※編集内容を確認すると、文頭のスペース、タブが全部削除されてしまい、大変みにくくなってしまいました。

  • Vargas
  • お礼率85% (174/204)
  • Java
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • sasadora
  • ベストアンサー率68% (59/86)
回答No.1

参考にしている本はJDK1.4以前のjavaを使用していると思います。 JDK1.4からパッケージ名のついていないクラスをインポートすることができなくなりました。 詳しくは参考URLの8.を参考にしてください。 解決するためには、printerクラスに適当なパッケージ名をつけることです。 printer.javaの先頭に、 package mypackage.printer app.javaを修正して import mypackage.printer; 余談ですが、クラス名の先頭は大文字にした方が 一般的です。 mypackage.Printer

参考URL:
http://java.sun.com/j2se/1.4/ja/compatibility.html
Vargas
質問者

お礼

迅速な回答ありがとうございました。 ・JDK1.4の新機能も先取りなんて書いてあるくせに  そんなんじゃ困りますね。 ・初学者が正しくというか一般的なコードを書ける様に  なる為のマニュアルなのにクラス名の先頭を大文字に  していないなんて。 まったく、失礼なマニュアルですね。この先、このマニュアルを使用する事が心配になってきました。 回答結果によっては顔から火がでるかと思いましたが、 思い切って聞いちゃってよかったです。 ありがとうございました。

関連するQ&A

  • import について

    最近JAVAの勉強を始めたばかりの超初心者です。 専門用語(クラス、オブジェクト、メソッド等)に四苦八苦していますが、何とか頑張っています。 で、質問の件なのですが以下をコンパイル出来ません。 //printer.java public class printer { public void print() { System.out.println("hello from java"); } } //app.java import printer; public class app { public static void main (String[] args) { (new printer()).print(); } } printer.java → printer.class のコンパイルは出来ますが app.java をコンパイルしようとすると、以下のエラーが出ます ~$ javac app.java app.java:1: '.' がありません。 import printer; ^ app.java:1: ';' がありません。 import printer; ^ エラー 2 個 printer.javaとapp.javaとprinter.classはすべてカレントディレクトリに入っています。 ただ、app.javaのファイルでimportの行を削除するとキチンとコンパイル実行できてしまいます。 これがなぜか分からない(自分はimportあたりが怪しいと思う)のでタイトルを「importについて」としました。 どなたか原因分かる方いらっしゃいましたら、ご教示よろしくお願いします。

    • ベストアンサー
    • Java
  • コンパイル時のエラーの件

    html上にJavaを表示させようとして、いちばん簡単なプログラム以下を作りました import java.applet.Applet; import java.awt.Graphics; public class hello extends Applet { public void paint (Graphics g ) { g.drawsString ("Hello Java Applet !",20,20); } } その後コンパイルしようとしたのですが、次のようなエラーメッセージが現れました。(特に.awtというのが全くわからないのです。) hello.java:1: シンボルを解釈処理できません。 シンボル: クラス applet 位置 : java の クラス import java.applet.applet; ^ hello.java:2: シンボルを解釈処理できません。 シンボル: クラス awt 位置 : java の クラス import java.awt.graphics; ^ hello.java:4: シンボルを解釈処理できません。 シンボル: クラス applet 位置 : hello の クラス public class hello extends applet { ^ hello.java:5: シンボルを解釈処理できません。 シンボル: クラス graphics 位置 : hello の クラス public void paint (graphics g ) { ^ なにか設定などがおかしいのでしょうか?教えてください。

    • ベストアンサー
    • Java
  • コンパイルエラーの対応

    下記のプログラムをコンパイルしたらエラーが発生しました。 プログラム自体は本をそのまま書き写したのですが、何がいけないのでしょう。 教えてください。よろしくお願いします。 Javaのバージョンは1.3.1です import java.applet.*; import java.awt.*; import java.awt.event.*; public class sample3 extends Applet implements ActionListener { Button bt; public void init() { bt = new Button("押します!"); bt.addActionListener(this); add(bt); } public void actionperformed(ActionEvent ae) { bt.setLabel("押しました!"); } } -----------------エラー内容----------------------- sample3.java:4: sample3 は abstract として宣言する必要があります。 actionPerformed(java.awt.event.ActionEvent) を sample3 で定義しません。 public class sample3 extends Applet implements ActionListener ^

    • ベストアンサー
    • Java
  • このソースのコンパイルできません。

    java, サーブレット初心者でコンパイルできません。エラーは以下のとおりです。 初歩的な質問で申し訳ないですがよろしくお願いします。 http://www.javaroad.jp/opensource/js_tomcat2.htm のページのHelloServlet.javaをコピーしてコンパイルをしようとしたらエラーが、、、。 import java.io.*; import java.text.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<HTML>"); out.println("<BODY>"); out.println(new java.util.Date()); out.println("</BODY>"); out.println("</HTML>"); } } ーーーーーーーーーーーーーーーーーーーーーーーーーーー HelloServlet.java:7: エラー: パッケージjavax.servletは存在しません import javax.servlet.*; ^ HelloServlet.java:8: エラー: パッケージjavax.servlet.httpは存在しません import javax.servlet.http.*; ^ HelloServlet.java:10: エラー: シンボルを見つけられません public class HelloServlet extends HttpServlet { ^ シンボル: クラス HttpServlet HelloServlet.java:11: エラー: シンボルを見つけられません public void doGet(HttpServletRequest request, ^ シンボル: クラス HttpServletRequest 場所: クラス HelloServlet HelloServlet.java:12: エラー: シンボルを見つけられません HttpServletResponse response) ^ シンボル: クラス HttpServletResponse 場所: クラス HelloServlet HelloServlet.java:13: エラー: シンボルを見つけられません throws IOException, ServletException { ^ シンボル: クラス ServletException 場所: クラス HelloServlet エラー6個 エラー

    • ベストアンサー
    • Java
  • java import文のエラー

    javaのソースで、パッケージをimportして使用するための簡単なサンプルを作成しました。 import文でクラス名まで指定すれば問題ないのですが、*を利用するとコンパイルエラーとなってしまいます。 コンパイル時にクラスパスを指定するのかと思って試してみましたが、やはりエラーでした。 回避方法をご存知の方いらっしゃいましたら、教えていただけますでしょうか。 なお、java/javacは、1.5.0_14を使用しています。 ■ソースコード(1) <C:\Work\Test\PackTest.java> package Test; public class PackTest{   public static void methodA(){     System.out.println("パッケージ成功");   } } ■ソースコード(2) <C:\Work\UsePack.java> import Test.*;     //import Test.PackTest; なら成功 class UsePack{   public static void main(String args[]){     PackTest.methodA();   } } ■エラー例(1) >javac -d . PackTest.java (これは成功) >javac UsePack.java   UsePack.java:5: PackTest にアクセスできません。   クラスファイル .\PackTest.java は不正です。   ファイルにクラス PackTest が含まれていません。   削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。     PackTest.methodA(); ■エラー例(2) >javac -d . PackTest.java (これは成功) >javac -classpath C:\Work\Test UsePack.java   UsePack.java:1: パッケージ Test は存在しません。   import Test.*;   ^   UsePack.java:5: PackTest にアクセスできません。   クラスファイル C:\Work\Test\PackTest.class は不正です。   クラスファイル Test.PackTest に不正なクラスがあります。   削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。      PackTest.methodA();      ^

  • java コンパイルエラー

    java コンパイルエラー java 初心者です。 簡単なプログラムを作りながら練習していたのですが、Exceptionクラスを継承して新しい例外を作る以下のプログラムで、コンパイルエラーとなり、解決できません。 class NewException extends Exception{ public NewException(){ super("エラー"); } } これを javac でコンパイルすると、 NewException.java:3: シンボルを見つけられません。 シンボル: コンストラクタ Exception(java.lang.String) 場所  : Exception の クラス super("エラー"); ^ エラー1個 と言われます。 これを読むと「Exception には String を引数にとるコンストラクタはないよ」と言われているように思えるのですが、そんなはずないのでは。。 もし原因がお分かりの方がいらしたら、ご教示いただけるとありがたいです。

    • ベストアンサー
    • Java
  • アプレットのプログラムがコンパイルできません。

    import java.applet.Applet; import java.awt.*; public class Lesson1Applet extends Applet { public void init(){ this.add(new Lesson1("")); this.setLayout(null); this.resize(600,450); } } 上記のプログラムがコンパイルできません。 本の通りに作ってみたのですが、コンパイルが出来ず Servlet1118Applet.java:7: シンボルを解決できません。 シンボル: クラス Lesson1 場所 : Lesson1Applet の クラス this.add(new Lesson1("")); ^ という、エラーが出ます。 なぜコンパイル出来ないのか、わかる方がいましたら お返事お願いいたします。

    • ベストアンサー
    • Java
  • コンパイルできない

    こんにちは いつもお世話になっています。 %CATALINA_HOME%/webapps/test/WEB-INF/classesにある TestController.javaをコンパイルしたいのですが 以下のようなエラーメッセージが出ます。 TestController.java:1: パッケージ dbpackage は存在しません。 import dbpackage.dbmodel; ^ どうすればTestControllerファイルをコンパイルできるのでしょうか? 最近質問ばかりでごめんなさい。 ちょっと切羽詰っています。 ご回答よろしくお願いします。 ちなみに「%CATALINA_HOME%」とはTOMCATをインストールしたディレクトリ,「dbpackage」とは%CATALINA_HOME%/webapps/test\WEB-INF\classesに あるフォルダでその中にはdbmodel.classというファイルが保存されています。 ==============TestController.java=============================== import dbpackage.dbmodel; public class TestController { public void TestController() { } }

    • ベストアンサー
    • Java
  • javaのコンパイルエラーについて質問

    macにてjavaを学習し始めた初心者です 真っ先に習うHello Worldのソースコードを書き、 class Hello01 { public static void main(String args[]){ System.out.printin("Hello Java World!"); } } コンパイルをしたところ以下のようなコンパイルエラーが表示されました Hello01.java:3: cannot find symbol symbol : method printin(java.lang.String) location: class java.io.PrintStream System.out.printin("Hello Java World!"); ^ どこかソースに欠けてる箇所があるのだと思いますが、 どこが間違っているのかいまいち分かりません。 どなたか分かる方、教えていただけますか? よろしくお願いします

    • 締切済み
    • Mac
  • コンパイル時のエラー。

    いつも大変お世話になりありがとうございます。 public static void main(String[] args)は何の意味があるのですか? http://www.task-notes.com/entry/20150930/1443582000 などを見てもイマイチ納得がいきません。 下記のプログラムでは public static void main(String[] args)がないためにエラーになりました。 解らないため適当な箇所に付け足したら、また異なったエラーになりました。 ;を付け足すとまた別のエラーが出ます。 ご多忙中恐れ入ります。 アドバイスのほど宜しくお願い申し上げます。 class Hero { public static void main(String[] args) private int point; Hero(int p) {point = p; } int getPoint() { return point; } void addPoint(int p) { point += p; } } コンパイルエラー C:\JAVA>javac Hero.java Hero.java:3: エラー: ';'がありません public static void main(String[] args) ^ エラー1個