• ベストアンサー

色度図を作りたいのですが..

こんにちは。 これまでVC++2005を使っていたのですが、色彩科学の分野で登場する「色度図」というものを作りたくて、いろいろ検索していたら、QNo.2082745で似ている質問を見つけました。そこで、その方が参考にしたというサイトが http://www.cs.rit.edu/~ncs/color/API_JAVA/source.html なのですが、すべてjavaで書かれています。 javaは全く扱ったことがなく、このサイトに載っているたくさんのコードのうち、どれを使えばいいのかも分からず、適当にその中の一つを選んで実行しようと試みたのですが、コンパイルはできても実行のときに、 Exception in thread "main" java.lang.NoSuchMethodError: main という表示が出てしまいます。 そこで、 (1)色度図を描くにはどのソースコードを用いればよいのか? (2)このエラー表示を解決するにはどうすればよいのか? という二点をお聞きしたいと思い、質問投稿させていただきました。 javaに関しては、昨日初めて少し使い方等を勉強したばかりで、右も左も分かりません。エラーは、main関数がないということを言っているのでしょうか? ちなみに色度図に関すること(三刺激値とか色度図の作成方法)は勉強しています。どなたか、上記の二点に関してお答えいただけないでしょうか?お願いします。 開発環境:WinXP SP2 フリーコンパイラ:java 2 SDK, SE v1.4.2_18

noname#235817
noname#235817
  • Java
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.1

> エラーは、main関数がないということを言っているのでしょうか? そのとおりです。"java クラス名"という形で実行するクラスには、"public static void main(String[])"という型で定義されたmainメソッドが必要です。 一方、リンク先のプログラムは"java クラス名"という形で実行するものではなく、Appletと呼ばれる形式のプログラムになっています。 http://www.cs.rit.edu/~ncs/color/の"The Applets"のところに説明されているように、各Appletのページをウェブブラウザで開いてみてください。なお、初回は起動に時間がかかると思います。 「色度図」というのは2番目の"The Chromaticity Diagram and Gamut Applet"で表示されるようなものでしょうか。もしそうならば、Appletのソースコードはhttp://www.cs.rit.edu/~ncs/color/API_JAVA/ImgTest.javaなので、このクラスを起点にどういう処理をしているのか調べることになると思います。

noname#235817
質問者

お礼

ありがとうございます! 練習でやってたのは"java クラス名"で実行しておりまして、実行すると小さいウィンドウが現れて..というものだったので、これも同じ感じなのかなと思っておりました。でもこれはアプレットというネットワークと連動する形式なのですね!ありがとうございました!

その他の回答 (1)

  • tyatsumi
  • ベストアンサー率58% (30/51)
回答No.2

補足。 ImgTestを手元でコンパイルして動かすには、 次のjavaファイルを持ってくる必要があります。 ChromaticityData.java CompColor.java DecimalPlaces.java Diagram.java ImgTest.java RGBCoord.java TripleSlider.java UpdatableComponentIfc.java UpdatableComponentImpl.java そしてコンパイルは javac ImgTest.java とすればOKです。 これをアプレットとして動かすには、ひとつファイルを作ります。 <applet code="ImgTest.class" width="400" height="400"></applet> という内容のファイルをimgtest.htmlとでも名付けて保存して、 appletviewer imgtest.html で実行できます。

noname#235817
質問者

お礼

ありがとうございます! ImgTest.javaファイルがメインなのですね。 コンパイルしたとき、一つ警告が出て、実行したときも、これでいいのかなって感じで英語がずらずら~と出てきたのですが、作ったhtmlファイルを開いたらなぜか色度図が出来てました。 こういうアプレットというものに慣れていないので、使いこなせるようになるにはちょっと時間がかかりそうです>_< 丁寧なご回答、ありがとうございました!

関連するQ&A

  • プログラミングによる色度図の作成方法

    プログラミングで、三刺激値XYZ(Yxy)から、RGB値に変換して、 以下のURLみたいに、中心部分が光って、外側の色が濃い色度図(光源色の色度図?)を作成したいです。 http://www.nichia.co.jp/jp/product/lamp-color.html 以下のURL,ソースを参考にして、色度図をプログラミングで描きました。 http://www.cs.rit.edu/~ncs/color/t_chroma.html http://www.cs.rit.edu/~ncs/color/API_JAVA/source.html (Diagram.java) 実際には、上記HPの様な、中心の光っている部分が小さいグラフしかかけません。 XYZからRGBへの変換式が違うかと思い、以下の式を試してもだめでした。 R = (2.280088812 * X -0.373460254 * Y -0.645622953 *Z); G = (-1.777655271 * X +3.944993595 * Y -0.901963019 *Z); B = (0.313713797 * X -0.754043019 * Y + 1.084705426 *Z); XYZ: 3刺激値 ガンマ = 1 (http://www.babelcolor.com/download/RGB%20Coordinates%20of%20the%20Macbeth%20ColorChecker.pdf) 中心を光らせるには、何か特別なコツがいるのでしょうか?

  • Javaでコンパイルできなくなりました

    javaでコンパイルできなくなりました。今まではJava2 SDK バージョン1.4.2_03をインストールしてコマンドプロンプトからjavac、javaコマンドを用いコンパイル、実行していました。 そして、Eclipse(バーション3.0)というIDE環境に興味を持ちインストールした後にとりあえずもう一度コマンドプロンプトからjavacコンパイルしてみたらエラーがでるようになりました。 ソースを書くと長くなってしまうので簡単に説明すると、String sに"Hello World"を代入してSystem.out.println()で表示させるだけのプログラムです。Eclipseをインストールする前は実行できたのでソースに問題があるという事はありません。エラーメッセージは以下のような感じでした //エラーメッセージ 検出値 : java.lang.String 期待値 : String String s = "Hello World"; その後にソースで String s="Hello World";としていた行を java.lang.String s = "Hello World";に変更しました するとjavacではエラーが出なくなるのですがjavaコマンドで実行すると Exception in thread "main" java.lang.NoSuchMethodError: main というメッセージが出て実行できないです。 環境変数は、SDKインストール後、PATHC:\j2sdk1.4.2_03\bin;を加え、Eclipseインストール後は何も変更していません。 何が問題なのでしょうか?お願いします。

    • ベストアンサー
    • Java
  • Javaの実行できません、教えてください。

    Javaの実行できません、教えてください。 http://members2.jcom.home.ne.jp/take_1118/Applet39.html このページのサンプルプログラムを実行したいですが、どうしても Exception in thread "main" java.lang.NoSuchMethodError:main というエラーが出るため、実行できません。 どうすればできるんでしょうか?教えてください、お願いします。 サンプルプログラムではmainメソッドが含まれていないようですが、そうすれば実行できるんでしょうか?

  • system関数を使用してJava実行(戻り値取得)

    こんにちは。 perlのsystem()関数を使用してJavaを実行し Javaの戻り値をPerlに返す。 以上の事を行いたいのですが、出来ません。 私が作成したソースと実行時のエラーを載せますので、 ご助言お願い致します。 尚、OSはLinuxです。 ----------------------- - Perl (CallTest.cgi) - ------------------------------------- #!/usr/bin/perl print "=== JavaCall START ===\n"; $Jret = "ABC"; print "PerlReturnBefore : " . $Jret . "\n"; $Jret = system("java Test"); print "PerlReturnAfter : " . $Jret . "\n"; -------------------- - Java (Test.java) - ------------------------------------- class Test { public static String main(String args[]) { String ret = "XYZ"; return ret; } } ------------ - 実行結果 - ------------------------------------- #perl CallTest.cgi === JavaCall START === PerlReturnBefore : ABC Exception in thread "main" java.lang.NoSuchMethodError: main PerlReturnAfter : 256 ------------------------------------- 期待している実行結果は === JavaCall START === PerlReturnBefore : ABC Exception in thread "main" java.lang.NoSuchMethodError: main PerlReturnAfter : XYZ です。 Javaの[public static String main]には戻り値が設定できないのでしょうか? 申し訳ありませんがご教授お願い致します。 以上の質問はPerlのカテゴリで良いのでしょうか? Javaのカテゴリにしたら良かったでしょうか? 場違いの質問でしたらスミマセン。

    • ベストアンサー
    • Perl
  • コンパイルできません

    JAVAを勉強して3日です。 インストール・環境設定を行いましたが、コマンドでコンパイルできません。 すみません、教えてください。 コマンドプロンプトからファイルのあるフォルダへ移動し、javac HelloWorld.java を実行しました。 エラー内容は以下のとおりです。 java.lang.NullPointerException at java.util.Hashtable.put(Compiled Code) at java.util.zip.ZipFile.readCEN(Compiled Code) at java.util.zip.ZipFile.<init>(ZipFile.java:61) at java.util.zip.ZipFile.<init>(ZipFile.java:71) at sun.tools.java.ClassPath.<init>(Compiled Code) at sun.tools.javac.Main.compile(Compiled Code) at sun.tools.javac.Main.main(Main.java:465) 宜しくお願いします。

    • ベストアンサー
    • Java
  • Java実行でのエラー

    Javaを勉強したいのでインストールしてみたところまでは良かったのですがコンパイルを通した後に実行すると動きません。 CLASSPATH:c:\Java JavaファイルがJavaフォルダの中に入っている状態です。 【手順】 c:\Java>java HelloJava.java ↓コンパイル成功 c:\Java>java HelloJava Exception in thread "main" java.lang.NoClassDefFoundError: HelloJava というエラーが出てJavaを実行できません。 エラーの内容がわかる方はがいらっしゃれば教えて頂きたいです。

    • ベストアンサー
    • Java
  • NoClassDefFoundErrorの解決方法

    netbeansでjava.lang.NoClassDefFoundErrorの解決方法を教えて下さい。 NetBeans IDE 7.0を使ってJAVAで、「Hell World !」を表示するものを 作りました。 ソースコード public class HelloWorld { public static void main(String args[]) { System.out.println("Hello World!"); } } NetBeansで、 「実行]-「ファイルを実行」とすると、「Hello World!」と表示されます。 正しく動きます。 しかし、 「実行」-「プロジェクトを実行」とすると、以下のエラーメッセージがでます。 java.lang.NoClassDefFoundError: helloworld/HelloWorld Caused by: java.lang.ClassNotFoundException: helloworld.HelloWorld at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) Could not find the main class: helloworld.HelloWorld. Program will exit. Exception in thread "main" Java Result: 1 また、コマンドラインから以下の様に実行しても、実行してもエラーとなります。 C:\Program Files\Java\jdk1.6.0_25\bin>java.exe -jar C:\java\HelloWorld\dist\HelloWorld.jar Exception in thread "main" java.lang.NoClassDefFoundError: helloworld/HelloWord Caused by: java.lang.ClassNotFoundException: helloworld.HelloWorld at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) Could not find the main class: helloworld.HelloWorld. Program will exit. そこで、 ソースコードに、「package helloworld;」の記述を行いと期待した結果となりました。 NetBeansで、「実行」-「プロジェクトを実行」 コマンドラインから実行 しても、「Hello World!」と表示されます。 ソースコード package helloworld; public class HelloWorld { public static void main(String args[]) { System.out.println("Hello World!"); } } 何故、 「package helloworld;」の記述の追加で動いたのでしょうか。 あるとないとで、どう違うのでしょうか。 「package helloworld;」は、何を意味しているのでしょうか。 環境は、 JDK1.6(jdk1.6.0_25) クラスパスは未設定。

  • Hello World さえも実行できないのですが

    DOSで実行しております。 コードは以下のとおりです。 ソースファイル名は sample.java class sample { public static void main(String args[]) { System.out.println("unko"); } } # javac sample.java のように、JDKの最新版を用いてコンパイルしたところ、 コンパイルエラーは表示されません。 # java sample と実行したところ次の用な実行エラーが表示されるのです。 Exception in thread "main" java.lang.NoClassDefFoundError: unko です。 本当に困り果てています。 どうか解決方法のご教授宜しくお願いいたします。

    • ベストアンサー
    • Java
  • アプレットをブラウザで表示できない

    こんにちは 似たような質問がいくつかありましたが 解決していないものもあったので また質問させていただきます。 kibou00さん(02/06/17 00:50)の質問とよく似ているのですが 私の場合実行しようとすると Exception in thread "main" java.lang.NoSuchMethodError: main というエラーが出ます。 手順は 1、コマンドプロンプトを開きます。 2、javac test.javaでコンパイルし、test.classを生成します。 (コンパイラはJava2SDKのバージョン1.4.2_09です。) (このとき、何もメッセージはでませんでした。) 3,java testで実行しようとすると xception in thread "main" java.lang.NoSuchMethodError: main というエラーが出ます。 また以下の内容の test.html を test.class と同じディレクトリに置いてIEで開くとアップレットが表示されない以外(タイトルと本文)。 はちゃんと表示されます <html> <head> <title>タイトル</title> </head> <body> <h3>プログラム<h3> <applet code=test.class width=300 height=210><br> </applet> </body> </html> なぜブラウザではアプレットが表示されないのでしょうか。 ただし、appletviewerを使うとちゃんとアプレットだけは 正しく表示されます。 どなたか教えていただけないでしょうか? 本当に困っています。 私の他にも困っている人がたくさんいるような気がします。 お願いします。

    • ベストアンサー
    • Java
  • ソースコードのmain()がないんです

    「セールスマン巡回問題」のソースコードをhttp://www.infonet.co.jp/ueyama/ip/java_source.html で見つけました。それは良かったのですが、肝心のmain()が見つかりません。 よって実行ができません。どのようにmain()を書けばよいのでしょうか? 適当に↓のようにやってみましたが動きません。Appletを動かさないといけないようですがどうやれば…。 public static void main(String[] args) { salesman salesman = new salesman(); // (new salesman()).init(); (new salesman()).calc_len(); } ちなみにここのhtmlではソースコードは途中で途切れていますが 下のURLでダウンロードソフトを使って落とせば完全なのが得られるはずです。(って激しく面倒ですね…_| ̄|○) http://www.infonet.co.jp/ueyama/ip/java/salesman.java よろしくお願いします。m(__)m

    • ベストアンサー
    • Java

専門家に質問してみよう