Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

Javaのコンパイルエラー

こんにちは。初投稿です。Javaに関しては初心者です
が、Fortran, C++などをかなり経験しています。

環境:ubuntu8.04 + emacs23 snapshot + JDE 2.3.5.1

Javaの知識をつけようと、得意の数値計算をJavaで取り
組もうと思っています。手始めに環境設定とコンパイラ
の操作などです。
下に添付したコードはウェブからコピペしました。自分
で書いたコードミスでは環境のチェックが難しいからで
す。

コンパイルを実行すると、
"The JDE does not recognize JDK 63 javac.Assume 
JDE1.7javac?"
と聞いてきます。OKを押すと、
"Cannot find JDE's tools jar file."
とでます。

http://www.nep.chubu.ac.jp/~shibata/javaindex.html#
Compiler

によると、63以上のローカル変数を持ついかなるメ
ソッドもコンパイルしない、とありますが、要するに、
変数を63以下にしなければ解決しないということで
しょうか?

-----------コード----------------------
import java.io.*;

public class Nibun {
    public static void main(String args[]) {
    int n;
    double a, b, c, x, fa, fb, fc, eps;

    // 初期値
    a=1.0; b=Math.E; c=0.0; x=0.0; fa=0.0; 
fb=0.0; fc=0.0; eps=1.0;

    // 二分法
    while(eps>1.0E-5) {
        c = (a + b) / 2;
        
        Nibun fx = new Nibun();
        fa = fx.calc(a);
        fb = fx.calc(b);
        fc = fx.calc(c);
        
        if(fa*fc<0) {
        b = c;
        fb = fc;
        }
        else if(fb*fc<0) {
        a = c;
        fa = fc;
        }
        else {
        System.out.println("おかしいよ。");
        break;
        }
        
        eps = Math.abs(b-a);
    }
    System.out.println(c);
    System.out.println(1.76*Math.log(1.76)-
1.0);
    }
    
    // x*log(x)-1=0 の計算
    double calc(double x) {
        double f = 0.0;
        f = x * Math.log(x) - 1.0;
        return f;
    }
}
-----------------------------------------------

4

回答

5537

閲覧

4件の回答

評価

0

私はemacsでの開発はやったことないわ。
だからJDEも使ったことないんだけど

仮に63個が影響しているとして
あなたのコードは
ローカル変数63個もある?

私は環境が悪いって言うようにしか見えないんだけど。

http://blog.somethingnew2.com/archives/2007/12/maccarbonemacsj.php

この辺り参考にならないかしら。


評価

0

変数…ないんですよね。
いろいろ探し回った結果、それらしいものがこれくらい
なもので。


評価

0

とりあえず
素直にエラーメッセージを訳せばいいのよ。
環境が悪いのは確かなんだし
1から構築しなおしてみると直るかも。

そもそもその構成だとダメというオチだったり。

Ubuntuのフォーラムで尋ねてみてはどうかしら。
同じことやっている人がいるはずよ。

評価

0

https://forums.ubuntulinux.jp/viewtopic.php?pid=30088

場所を移すなら一報入れるといいよ。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。