
Ubuntu日本語フォーラム
ログインしていません。
UbuntuにてJavaを勉強している初心者です。現在オライリー社の”詳解Javaプログラミング”という本を参考にJavaを勉強しています。
この本の中の”HelloJava3.java”をコンパイルしようとしたら、NetBeans上で”警告: [options] ブートストラップ・クラスパスが-source 1.6と一緒に設定されていません”
というメッセージが出て、JButtonの変数theButtonを認識してくれません。
自分で調べたところhttp://www.javaroad.jp/bbs/answer.jsp?q_id=2012120512023815の問題が自分とよく似ていたため、これを参考に色々とjavacをいじってみました。
javac ・・・・・で、-target A のところのAの部分を1.6 にすると”デフォルトリリース1.7と競合しています。”というような内容のメッセージが出て、Aの部分を1.7に変えると”致命的エラー: クラスパスまたはブート・クラスパスでパッケージjava.langを検出できません。”というメッセージが出ます。
参考までに、ターミナル上での操作状況を以下に掲示します。
選択肢 パス 優先度 状態
------------------------------------------------------------
* 0 /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java 1071 自動モード
1 /usr/bin/gij-4.7 1047 手動モード
2 /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java 1061 手動モード
3 /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java 1071 手動モード
現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください:
●●●●@●●●●●:~$ javac -target 1.7 -bootclasspath /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java -extdirs "" HelloJava3.java
javac: ファイルが見つかりません: HelloJava3.java
使用方法: javac <options> <source files>
使用可能なオプションのリストについては、-helpを使用します
●●●●@●●●●●:~$ cd JAVAプログラム
●●●●@●●●●●:~/JAVAプログラム$ javac -target 1.7 -bootclasspath /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java -extdirs "" HelloJava3.java
致命的エラー: クラスパスまたはブート・クラスパスでパッケージjava.langを検出できません
この他にも私の拙い知識・知恵を使って色々試しましたが、うまく行きません。
これが原因で、JButtonの変数theButtonを認識できないようです。
HelloJava3.javaのプログラムは以下の通り。
//file: HelloJava3.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class HelloJava3
{
public static void main( String[] args ) {
JFrame frame = new JFrame( "HelloJava3" ) ;
frame.getContentPane().add( new HelloComponent3("hello Java!") );
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setSize( 300, 300 );
frame.setVisible( true );
}
}
class HelloComponent3 extends JComponent
implements MouseMotionListener,ActionListener
{
String theMessage;
int messageX = 125, messageY = 95; // メッセージの座標
JButton theButoon;
int colorIndex; // someColorsの現在の指標
static Color[] someColors = {
Color.black, Color.red, Color.green, Color.blue, Color.magenta };
public HelloComponent3( String message ){
theMessage = message;
theButton = new JButton( );
theButton.setText("Change Color");
setLayout( new FlowLayout( ) );
add( theButton );
theButton.addActionListener( this );
addMouseMotionListener( this );
}
public void paintComponent( Graphics g){
g.drawString(theMessage, messageX, messageY);
}
public void mouseDragged( MouseEvent e ){
messageX = e.getX( );
messageY = e.getY( );
repaint( );
}
public void mouseMoved( MouseEvent e ){}
public void actionPerformed( ActionEvent e ){
// 誰かがボタンを押した?
if (e.getSource( ) == theButton)
changeColor( );
}
synchronized private void changeColor( ){
// 厄介な方法で指標を次のカラーに変更する
if (++colorIndex == someColors.length)
colorIndex = 0;
setForeground( currentColor( ) ); // 新しいカラーを使う
repaint( );
}
synchronized private Color currentColor( ){
return someColors[colorIndex];
}
}
ちにみに、これの前までの”HelloJava.java”と”Hellojava2.java”のプログラムはうまく動作しました。
私のパソコン環境は以下のとおりです
ノートパソコン:Compaq 620
OS:Ubuntu 13.04
メモリ:3.8 GiB
プロセッサ:Celeron(R) Dual-Core CPU T3000 @ 1.80GHz × 2
グラフィック:Mobile Intel® GM45 Express Chipset x86/MMX/SSE2
OS種別:32 ビット
ディスク:153.2 GB
ネット環境はわけあってテザリングで対応してます。(WiFi環境なし)
以上、ご教授のほど宜しくおねがいします。
オフライン
Ubuntuは関係なくて、ソースコードにミスがあるように見えます。
HelloJava3.javaのソースコードを修正してコンパイルしてみたら動きましたよ。
ボタンを押したら hello Java! の色が変わるんですよね?
試した環境は、
Ubuntu 13.10
$ java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
です。
オフライン
早速の御返事有難う御座います。
どのへんのコードが間違ってるのかわかりませんが、再度チェックしてみます。
もし、可能であればどのへんのコードが間違っているのか、教えていただければ助かります。
こちらの都合で中々返信ができないと思いますが、よろしくお願いいたします。
オフライン
致命的エラー: クラスパスまたはブート・クラスパスでパッケージjava.langを検出できません
オフライン