Java 3D Web Startのソースコード一例を教えてください

このQ&Aのポイント
  • Java3Dでプログラムを作成し、JavaJREをインストールしていない仲間にもプログラムを見せる方法を知りたいです。
  • JavaNetのJava 3D Web Startには、いくつかの3Dサンプルがありますが、ソースコードは紹介されていません。
  • Swingを使用した3DのサンプルをJavaWebStartで表示させる手順を教えてください。
回答を見る
  • ベストアンサー

Java 3D Web Start のソースコード一例を教えてください

私は、Java3Dでプログラムを作成しています。 作成したプログラムの実行結果を仲間に示したいのですが、多くの仲間はJavaJREについてはプレインストールパソコンを使っていますが、Java3Dはインストールしておらず見てもらうことができません。 先日、OKWave殿を通じてJavaWebStartの存在を知り、特に紹介されたJavaNetのJava 3D Web Start( https://j3d-webstart.dev.java.net/test/ )には、rotating cube、moving sphereなどいくつかの3Dサンプルが画面をクリックすると見ることができます。 ただし、いずれも jnlpファイルで紹介されていて、ソースコードは紹介されていません。 JavaWebStartは、プログラム(ソースコード)を作成後、classファイルをjarファイルにかためて、jnlpファイルと共にWebサーバにアップすることでプログラム実行結果を仲間にも見てもらえるようになりますが、私の認識ではSwingで書かれたアプリケーション、しかもjnlpファイルのapplication-desc 要素にはオプション属性 main-class を記載するため、ソースコードには、「public static void main(String argv[]) メソッドを含む、最初に実行されるクラス」の記載が必要になってくるかと思います。 Swingアプリケーションを扱う多くのサイトに紹介されているコンポーネント、レイアウトなどを示すサンプルソースコードは上の方法にて、JWSで表示させることができたのですが、3DをJavaNet社のサンプルのように表示させることができていません。 java3D Web Startで表す3Dの簡単モデル(できれば、回転アニメ、behaviorなど動きのあるもの)をソースコードとともに、またWebサーバにアップするまでの手順を教えていただきたいと存じます。

  • Java
  • 回答数5
  • ありがとう数7

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

  • ベストアンサー
回答No.4

(3) >3つのjarファイルを(,)で区切り書きましたが、 カンマではなく半角スペースで区切ってください。惜しい! マニフェストファイルの末尾の改行も、くれぐれもお忘れにならないよう……。 (5) jarやdllが入っているフォルダを、そのフォルダごと圧縮するとうまくいくと思います。 (7) Java3Dがインストールされているtaiheyさんのパソコンでは、上記のクラスパスが間違っていても Javaがlib-extのフォルダから Java3D を見つけてきたので実行できたのでしょう。 たぶん上記のクラスパスのを直せばうまくいくと思います。 もちろんご友人のパソコンに Java がインストールされていることもお確かめください。 (ちなみにANo.1の(3)の延長で、Java3Dだけでなく Javaそのものも同梱してしまう荒業すら可能だったりします。 その場合Java のインストール作業すら不要ですが、合計サイズは100メガバイトぐらいになります。) >2 <security><all-permissions/></security>を加えると表示できなくなります そうです。すべての権限を要求してしまうので署名がないと実行できません。 >import javax.swing.*;を追加記述すると swing にも Java3D にも Box というクラスがあるので、コンパイラがどちらか区別できなくなっています。 「import javax.swing.*;」でパッケージごとインポートするのではなく「import javax.swing.JFrame;」で JFrame だけインポートしてみてください。 このへんは Java3D というより Java の基本なので、入門書などをあたってください。 それで「コントラクターMainFrame(sample, int, int)は未定義です。」も直る……かな?

taihey
質問者

お礼

hirusagariさん、補足にて(3)の方法について、「マニフェストファイルのClass-Path属性に記入する3つのjarファイルを半角スペースで区切りました。にもかかわらず、仲間(Kさん)のパソコンでは表示できませんでした。」と書きましたが、その後、jre1.6.0_07をインストールしている別の仲間MさんとSさんのパソコンでは、Java3Dをインストールしていないけれども、表示できました。 Kさんのパソコンでは前にも書きましたが、jre1.6.0_05です。インストールしているバージョンが多少以前の場合は表示できないのでしょうか?それともKさんの解凍、その他操作が不適切だったのでしょうか? 結論としては、hirusagariさんがリコメンドされる(3)の方法では、表示できるということになりました。まだ未確認ですが、この方法ではSwingアプリケーション方式にしないでも、私が作成してきた多くのアプレット方式3Dに対しても有効ではないかと思い、明日にでも確かめようと思っています。 どうもありがとうございました。 尚、Sさんのパソコンにても、JavaWebStartは起動しますが、3D(トライ8)は表示させることができませんでした。トライ1とトライ2(何れも3Dではありません)は表示させることができました。トライ8の場合のソースコードを検討しなおさないと実現できそうにもありませんが、私にはもはや難しそうです。 (2)の方法に対し、何か、すぐにでもお気づきのことがありましたらアドバイスをお願いいたします。 先ずは、お礼まで 

taihey
質問者

補足

Ao.4ありがとうございました。 (3)について アドバイスいただいたように (1) マニフェストファイルのClass-Path属性に記入する3つのjarファイルを半角スペースで区切りました。 (2) マニフェストファイルの末尾は改行するようにしています。 その後、前回と同じように、コマンドプロンプロにて、Sample3D.jarを下記で作成しました。 >jar cvfm Ssample3D.jar META-INF\MANIFEST.MF *.class 次に、Sample3D.jarとJava3Dからコピーした4つのdllファイルと、3つのjarファイルをまとめて、今回はLhacaで圧縮したところ、圧縮ファイルtest7.lzhができました。(前回は、Lhaplusで圧縮しようとしました。) 圧縮したファイルを仲間に送り、解凍後にSample3D.jarをクリックしてもらい確かめてもらいましたが、前回同様に表示しませんでした。(仲間のパソコンには jre1.6.0_05 がインストールされています。) 上記の圧縮ファイル test7.lzh と、半角スペースで区切り作成したマニフェストファイルも含めた圧縮ファイル test7a.lzh をサイトのトライ7にアップします。 前回の補足で記載した手順に、今回の修正を加えて作成した次第です。hirusagariさんのアドバイスに従ってしたつもりですが、私が作成したどこかに誤りがあるのかもしれません。申し訳ありませんが、再確認していただけますでしょうか。 (2)について アドバイスいたように、「import javax.swing.*;」を「import javax.swing.JFrame;」に変えたところ、Box箇所3カ所のエラーはなくなりました。 そこで、次に、 public final class Sample3D extends Applet { をコメントアウトにして、public final class Sample3D extends JFrame { を追加したところ、やはり、「コントラクターMainFrame(sample, int, int)は未定義です。」のエラーが生じました。 この部分をコメントアウトし、下記を sample.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //追加 sample.setBounds(10, 10, 300, 200); //追加 sample.setTitle("タイトル"); //追加 sample.setVisible(true); //追加 public static void main(String[] args) { Sample3D sample = new Sample3D(); の後に追加したところ、エラーはなくなり、実行させたところ表示させることができました。 それで、jnlpファイルを作り、トライしたところ、JavaWebSrartが起動し表示させることができました。(サイトのトライ8に示します。) サイトを仲間に送り確認してもらったところ、JavaWebStartを軌道させることができず、表示しませんでした。(この場合も、Java3Dをインストールしていないと表示させることができないのでしょうか?) 尚、この仲間もサイトのトライ1とトライ2(何れもJava3Dではない)の場合は、JavaWebStartが起動し、表示させることができたそうです。 誠に申し訳ありませんが、更にアドバイスいただきたく、よろしくお願いします。

その他の回答 (4)

回答No.5

うまくいったようで何よりです。 一部のご友人のパソコンで起動できたのなら、Java ソースコードや Jar の構成はただしくできている思います。 Java3D はハードウェアの機能を使いますので、実行するハードウェアの構成によって動作がことなることがあります。 たとえば、CPU が Intel 系か AMD 系かによっても必要なファイルが違います。 起動できないかたのパソコンの構成がわからないので、自分にはこれ以上は推測しようがありません。 JRE のバージョンによっても問題が発生する場合がありますが、jre1.6.0_05 ならかなり新しいので「たぶん」大丈夫でしょう。 もし問題が CPU の違いにあるとすれば、 以下のページからその環境に対応するファイルをダウンロードして Jar と DLL を置き換える必要があります。 https://java3d.dev.java.net/binary-builds.html これで解決しないとなると、Web 上の限られたやり取りではこんどこそお手上げです。 >アプレット方式3D 残念ながら署名のないアプレットでは(3)の方法は使えません。 アプレットのセキュリティ制限によって Java3D の DLL がロードできないからです。 もしこれができてしまうと、DLL を悪意のあるプログラムに置き換えれば アプレットを実行したユーザのコンピュータを攻撃できてしまいます。 DLL の中までは Java のセキュリティ制限が効かないため、 署名のないアプレットが勝手に DLL をロードするわけにいかないのです。 Java3D は DLL が必要ですが、他に DLL が必要ないアプレットであれば署名がなくても実行できます。 (2)の方法については jar を署名するしか方法は思いつきません。というかたぶん署名しない限り無理です Java Web Start のセキュリティの考え方についてはアプレットの場合とだいたい同じです。

taihey
質問者

お礼

hirusagariさん、ANo.5、そして今回も合計で5回にわたりいろいろ教えていただきありがとうございました。 今回の課題につきましては、hirusagariさんのリコメンドされる方法で解決できましたし、Java Web Start の制約、その他についても実地で学ぶこともできました。 >アプレット方式3Dにつきましても、hirusagariさんのリコメンドされる方法(3)でしてみました。自分のマシンだけではできましたが、署名のないアプレットではJava3Dをインストールしていない仲間のマシンでは表示できないということになるのですね。詳しく教えていただいてありがとうございました。 誠に、ありがとうございました。 PS 前回教えていただいたリファクタリングにつきましては、入門書を読み始めました。またeclipseにリファクタリング機能が備わっているとのことなので、こちらも操作しながら腰を落ち着けて覚えるようにしたいと思います。いずれ質問させていただくことになろうかと思いますが、またよろしくお願いいたします。

回答No.3

もしかしていけるかなー?とか思っていましたが無理でしたね。 あてにならないことを言ってしまってすみません。 <security><all-permissions/></security> ですべての権限を要求すると、さすがに 署名されていないアプリケーションがシステムへの無制限のアクセスを要求しています とエラーがでますね。 Java3Dのサイトのデモはちゃんと署名してあるようです。それがなくても、 java.security.AccessControlException: access denied (java.util.PropertyPermission * read,write) とやっぱりセキュリティ関連でエラーがでますね。スタックトレースを見る限り、 com.sun.j3d.utils.applet.MainFrameがなぜかシステムプロパティを参照しようとしていてエラーがでてしまうようです。 もしかしたらMainFrameじゃなくてJFrameならいけるかも……なんて思いましたが、うまくいく保証はありません。 というわけで、 >AppletをSwingJavaのJFrameに変えてみたらどうなるか、 というのはもしかしたら効果があるかもしれませんね。 もちろんその場合は同時に他の部分も修正する必要があります。 Java Web Start で起動するには署名する手もあるわけですが、 署名はあれこれ知識が必要ですし、かなり手間がかかります……。 自分もこれ以上は Java Web Start で起動する方法が思いつきません。 おちからになれず申し訳ありません。 Java Web Start のようにWebページのリンクから直接起動することはできませんが、 自分はやっぱり ANo.1の(3)がいちばん楽だと思うのです……。 Zipをダウンロードして解凍、実行ファイルをダブルクリック――という手順は ある意味「普通の手順」なので、エンドユーザもそこまで嫌がらないでしょうし。 ちなみに自分の手元のJOGL(Java3Dとは別の3Dグラフィックス用API)をつかったアプリケーションは (3)の方法でつくっています。

taihey
質問者

補足

hirusagariさん、ANo.3ありがとうございました。 > あてにならないことを言ってしまってすみません。 とんでもありません。試行錯誤していろいろさせていただき大変感謝しています。 1 アドバイスに従い、ANo.1の(3)を下記の方法でトライしました。 (1) 3つのjarファイルと4つのdllファイルは、それぞれC:\Program FilesのJava-Java3D-1.5.1のlib-extフォルダとbinフォルダにありました。合計7つのファイルを、ローカルのtest6フォルダにコピーしました。 (2) 同じtest6フォルダには、hirusagariさんが編集し私がeclipseで実行させたアプリケーション(Sample3D)のソース、classファイル類も集結しました。 (3) また、同フォルダにMETA-INFフォルダを作り、下記で構成したMANIFEST.MFファイルを作りました。 Manifest-Version: 1.0 Created-By: 1.6.0_03 (Sun Microsystems Inc.) Main-Class: Sample3D Class-Path: j3dcore.jar, j3dutils.jar, vecmath.jar Class-Path属性に上記のように3つのjarファイルを(,)で区切り書きましたが、これでよいのでしょうか? (4) 次に、コマンドプロンプトにて、アプリケーションのjarファイル(Sample3D.jar)を下記のようにして作成しました。 >jar cvfm Sample3D.jar META-INF\MANIFEST.MF *.class (5) そのあと、上記(1)の7つのファイルと(4)で作成したSample3D.jar(総合計8ファイル)を、手持ちの圧縮・解凍ソフトにて1つの圧縮ファイルにしようとしたのですが、このソフトではjarファイルを逆に解凍してしまう結果になり、圧縮ファイルを作ることができませんでした。(どうすれば圧縮させることができるでしょうか?アドバイスをお願いします。) (6) そこで、Webサーバ(次のサイト:http://www.geocities.jp/java3dtest/QA09/question9.html)に8つのファイルをアップしようとしましたが、4つのdllファイルは(-)を含んでいてWebサーバで受け付けてくれないために、これら4ファイルをまとめて圧縮(kaitou.lzh)とし、残りの4つのファイルと共にアップしました。サイトのトライ6を参照してください。 (7) サイト6に記載した手順にて、合計8つのファイルを同一フォルダにまとめた上で、Sample3D.jarをダブルクリックすると、私は実行し、画像が表示されるのですが、Java3Dをインストールしていない仲間のパソコン上では表示させることができません。 ということで、hirusagariさんの教えを私が十分に理解していないからだと思うのですが、私の操作間違い、理解不足など指摘していただきたいと、またまたお願いです。 2 次に、 ANo.1の(2)の方法についてですが、私が実施した簡単なサンプル(サイトのトライ2)ではJWSで表示できたのですが、このときのjnlpファイルに、<security><all-permissions/></security>を加えると表示できなくなります。サイト:http://www.geocities.jp/java3dtest/QA09/question9.html のトライ5を参照ください。 私がJava3DでないJavaアプリケーション(JavaSwing)でJWSで表示できたサンプルでは、何れもjnlpファイルには、<security>要素の記述がなく、これらアプリケーションのソース記述では、何れも下記の記述があります。  (1) import javax.swing.*; (2) public class xxx extends JFrame{ (3)  public static void main(String[] args){ xxx frame = new xxx(); 注)xxxはアプリケーションクラス名 そこで、hirusagariさんに編集していただいたSample3Dに対して、eclipseで先ず(1)のimport javax.swing.*;を追加記述すると、下記のコード3行(何れもpublic static void main(String[] args) { 内の記述です。)が「型boxあいまいです。」とコメントが付きエラーとなります。 1) group.addChild(new Box(0.05f, 0.05f, 0.08f, bapp)); 2) group.addChild(new Box(getRadius(), getHeight(), 0.3f, rapp)); 3) group.addChild(new Box(0.25f, 0.02f, 0.02f, gapp)); また、(1)に加えて、AppletをJFrameに変えようと、先頭部分 public final class Sample3D extends Applet { を public final class Sample3D extends JFrame { に変更すると、上記3行に加えて、最後のnew MainFrame(sample, 800, 600);の部分が、「コントラクターMainFrame(sample, int, int)は未定義です。」がコメントが付いてエラーになります。 hirusagariさんは、「自分もこれ以上は Java Web Start で起動する方法が思いつきません。おちからになれず申し訳ありません。」とのことですが、これらエラーに対してエラーを解消する何らかのアイデアを思い付かれましたらアドバイスいただきたいと思います。 多大の時間を割いていただき、誠に申し訳ありませんが、よろしくお願いいたします。

回答No.2

Geociticesに配置したjnlpもちゃんと実行できるようですね。 >Java アプリケーションと……具体的にはどのような記述方法になるのでしょうか? ですから、今までと何も変わりません。 たとえばqa4223955で書いたソースコードをJava Web Startで起動できるようにする場合、ソースコードには何も変更を加える必要はないはずです。 >シンプルなケースを例にして示していただけるでしょうか? 「シンプルで具体的なケース」がまさに Java3D のサイトにあるデモですから、 自分が何か具体例を与えるよりは、まずはこれを詳しく調べてみてはどうでしょうか。 自分はなにか新しい技術を試すときには、まずはサンプルをそのまま(といっても自分の環境で動くような最低限の修正を加えて)実行してみて、 それが動作することを試してから、いろいろと変更を加えて調べてみることをします。 jnlp を書くのもできていらっしゃるようですから、あとは jnlp の拡張の書き方だけのように思います。 自分もほとんどJava Web Startは扱ったことがないので、 自分ならまずはjava3dのデモのjnlpをそっくり真似てみますね。 http://www.geocities.jp/java3dtest/QA09/question9.html の jnlp との違いを比べてみると、 <security> <all-permissions/> </security> と、 <extension href="http://download.java.net/media/java3d/webstart/release/java3d-latest.jnlp"/> があるのが気になりますね。もしかしたらこれだけ書き足したら Java Web Startが勝手に上のURLから必要なファイルを取ってきて動くんじゃないですかね? 残念ながら、Java Web Startについてこれ以上は自分にはわかりません。 ANo.1の(3)は ・実行ディレクトリに j3dcore.jar, j3dutils.jar, vecmath.jar, j3dcore-d3d.dll, j3dcore-ogl.dll, j3dcore-ogl-cg.dll, j3dcore-ogl-chk.dll をコピーする ・自分のアプリケーションのjarのmanifest.mfのClass-Path属性にj3dcore.jar, j3dutils.jar, vecmath.jarを追加する ・エンドユーザにはZipかなにかでまるごとダウンロードさせて、ローカルでJarを実行させる ということです。

taihey
質問者

お礼

hirusagariさん、アドバイスに従い下記をトライする前に、もう一度別の簡単なSwingApplication(JPanelTest)をJWSで表示させてみました。今回はjnlpファイルの中への<resources>要素の記述<j2se version="1.5+"/>は、Java3D Web Startのサンプルに併せて1.5+としました。結果は同様で表示できました。(下記サイトのトライ2に示します。) この後、下記を実施しました。 1)Java3Dで教えていただいたソースコード(AQNo4で示していただいたソース)には何も変更を加えずに、トライ2で作成したjnlpファイルに対して、codebase(jnlpファイルの3行目)と <resources>要素に記載するjarファイル名、それにapplication-descに記載するメインクラス名を変えて実行しました。結果は表示できませんでした。(下記サイトのトライ3に示します。) 2)次に、上記のjnlpファイルに、<security>要素と、resources 要素にはextension要素を、Java3D Web Startのサンプルに示されている通りに追加して実行しました。結果はやはり表示できませんでした。(下記サイトのトライ4に示します。) 尚、途中、<security>要素だけとか、extension要素だけを加えても結果は同じでした。 また、Java3D Web Startのサンプルに示すjava3d-latest.jnlpをダウンロードし、私の登録しているWebサーバに置こうかとも考えましたが、このjnlpファイルをダウンロードすることができませんでした。 3)hirusagariさんが編集されたソースコードの、 public final class Sample3D extends Applet { 部分のAppletをSwingJavaのJFrameに変えてみたらどうなるか、このときはimport javax.swing.*; を加えてみたらどうかなどもトライしてみたのですが、そうするとソース自体にエラーが生じてしまいました。 ANo.1の(3)については、現在のところ実施していません。 先ず、JWSで表示できるようにしたいのですが、上記のように足踏み状態です。引き続きトライはしてみますが、またアドバイスいただければと思います。よろしくお願いします。 参照サイト: http://www.geocities.jp/java3dtest/QA09/question9.html

taihey
質問者

補足

hirusagariさん、早速回答いただきありがとうございました。 アドバイスいただいた、「自分ならまずはjava3dのデモのjnlpをそっくり真似てみますね。」の件ですが、該当jnlpファイルをどのようにしてダウンロードするか思いつかなかったのですが、改めて試行錯誤してみたらできました。 そして、<extension href="​http://download.java.net/media/java3d/webstart/release/java3d-lates...​の記述を確認しました。 自分の作成したjnlpファイルと比較検討し、先日教えていただいたJava3Dのソースコードでトライしたいと思います。本日これから所用があり夜分、或いは明日確かめてみます。 ANo.1の(3)についても、補足ありがとうございました。こちらもトライしてみます。また、結果を報告させていただきます。 ありがとうございました。

回答No.1

Java Web Start は Java アプリケーションを Web を通して起動させる方法ですから、 通常の Java アプリケーションとソースコードの書き方は(セキュリティ関連を除けば)あまり変わりません。 jnlpの説明はあってもソースコードそのものの解説がないのはそのためです。 おっしゃるとおり、Java アプリケーションと同様に、main-class に指定されるクラスには main メソッドの定義が必要になります。 Java3D を利用したアプリケーションを起動するには、 (1)別個にユーザに Java3D をインストールさせる (2)extension に Java3D を指定してアプリケーションを Java Web Start で起動させる (3)Java3D をアプリケーションに同梱する のみっつの方法が自分には思いつきます。 (1)は開発者は楽ですが、面倒と感じるエンドユーザが多いかもしれません。 (2)は Java3D 公式サイトでも使われている無難な方法ですが、Web サーバの設定によっては使いにくいかもしれません。 (とはいえ、たとえ Geocities が jnlp に対応していなくても、jnlp をただのテキストファイルとしてダウンロードさせて、 ローカルに保存してから起動することもできるようです) (3)はライセンスが許せば、エンドユーザも特別な操作が要らないのでお勧めです。 簡単に調べただけですが、再配布の規定はされているようなので同梱することもできそうです。 DLL をそのアプリケーションのルートに配置し、jarにクラスパスを設定するだけなので、 手順としては難しくはありません。

taihey
質問者

補足

hirusagariさん、早速そしてご丁寧な回答ありがとうございました。 3つの方法の (1)は、Java3Dのプログラム作成で、私もこれまでトライしてきた方法ですね。途中作成段階で友人・仲間の何人かに見てもらおうとしたのですが、彼らはプログラム作成には興味が薄く、通常プレインストールされているJRE以外にインストールする気持ちを持っていないこともあり、Java Web Startの勉強 をはじめました。 (2)の、Java Web Start (JWS)は、Swing JavaでコーディングしたJava アプリケーションのclassファイルをJARにまとめ、このJARファイルと共に、JWSを起動させるJNLPファイルをWevサーバにアップロードする必要があるとのことです。 尚、Yahoo Geocities では、jnlpファイルをアップロードできるファイルの種類の1つにしていることがわかりました。 それで、広く紹介されているSwing Javaで書かれたサンプルの1つ(JTextArea)を例にして、これを私のテスト用サーバにアップしてJWSでみるようにしました。下記のサイトをご確認ください。 http://www.geocities.jp/java3dtest/QA09/question9.html この例では、メインクラスの「JTextAreaTest」が「JFrame」をextendしているようになっています。(ソースコードを参照してください。) hirusagariさんのご回答では、「extension に Java3D を指定しては」、また、「Java アプリケーションとソースコードの書き方も、セキュリティ関連を除いて、あまり変わりません。」とのことですが、具体的にはどのような記述方法になるのでしょうか? 誠に申し訳ないのですが、前回QNo.4223955のボタンクリックで設計変更に応じるJava3D物体を作るには?(その2)で示していただいた3Dのアプリケーション、或いは、これに近いシンプルなケースを例にして示していただけるでしょうか? (3)の方法については、私のレベルでは、イメージがつかめないため、上記の(2)の方法で目標とするところに近づけたいのですが、よろしくお願いします。 

関連するQ&A

  • Java Web Start の起動第1歩でつまずいています

    Java3Dで開発したプログラムをJava3Dをインストールしていない仲間にも見てもらおうと考えOKWave殿に質問したところ、Java Web Start を立ち上がるようにすればできるのではないかとの回答を得て、とりかかりはじめました。 Java TM Web Startの開発者ガイド(http://sdc.sun.co.jp/java/docs/products/javawebstart/1.2/ja/docs/developersguide_ja.html)によれば、先ず下記をするようにとの記述があります。 - 引用開始 - 1 Java Web Start の MIME タイプを使用するように Web サーバを構成する 拡張子 .jnlp を持つすべてのファイルが application/x-java-jnlp-file MIME タイプに設定されるように、Web サーバを構成します。 たいていの Web ブラウザは、Web サーバからコンテンツと共に返される MIME タイプを使って、特定のコンテンツの処理方法を決定します。Java Web Start の呼び出しを有効にするには、サーバが JNLP ファイルに対して application/x-java-jnlp-file MIME タイプを返す必要があります。 Web サーバごとに、MIME タイプを追加する特定の方法があります。たとえば、Apache Web サーバでは、.mime.types 構成ファイルに次の行を追加する必要があります。 application/x-java-jnlp-file JNLP 使用する Web サーバの仕様については、マニュアルを参照してください。 ー 引用終了 - 具体的には、どのような操作をすれば良いのか下記の質問4項目について教えていただきたく質問します。 1)「使用するWeb サーバの仕様については、マニュアルを参照してください。」とありますが、私の場合、Yahoo/GeocitiesのWebサーバを主に使っているのですが、マニュアルは不明です。多くの場合、Apache Web サーバであるということで、上に書かれたように設定すればよいのでしょうか? 2)次に、MIME タイプの設定ですが、これは、自分のパソコンのエクスプローラ/ツールにあるフォルダオプションで「ファイルの種類の編集」をしていけばよいのでしょうか?上のガイドに書かれたことを「ファイルの種類の編集」方法で実施する手順がわからず、具体的操作方法を教えていただきたく存じます。 3)私は、この最初の設定を行わずに、次のステップの「アプリケーション用の JNLP ファイルを作成する」と「jarファイル作成」をしてオフラインにてJNLP ファイルをダブルクリックしたところ、「JavaStarting」は表示されたのですが、その後、「このアプリケーションを起動できません」のアプリケーションエラー・メッセージが表示されてしまいました。このエラーは最初の設定をすれば解消するのでしょうか?エラーとなる要素が、まだ他にも考えられるでしょうか? 4)それと、Java Web Start で表示させるためには、プログラムはアプリケーション方式に限り、アプレット方式では起動させられないのでしょうか? 以上、教えていただきたくよろしくお願いいたします。

  • Webから得るJAVAプログラム

    わたしの入手した「JAVAプログラング技法」(堀内泰輔訳)に、「逆アセンブラ(javap)は、ソースコードが入手できないコンパイル済みのJavaプログラム(例えば読者がWebから得るJavaプログラム)を、元のソースコードに戻すための手ごろなツールです。」(24頁)と説明されています。WebからJavaプログラム(のバイトコード)を得る方法を教えて戴けないでしょうか。

  • JavaソースコードをコンパイルするJavaプログラム

    タイトルの通りですが、Javaソースコードをコンパイルし、実行するJavaプログラムを作りたいのですが、なにか有効な方法はありますでしょうか。 Runtime.getRuntime().exec( "javac Test.java" ); のようにすると、エラーになります。 なにか良い方法をご存知でしたら、よろしくお願いします。

    • ベストアンサー
    • Java
  • 【JAVAによる3D描画】JAVA 3D APIとJOGLの長所・短所

    JAVAの基本は知っていますがグラフィック初心者です。 最近Swingのサンプルプログラムを作っています。過去にAWTは触ったことがあります。 表題の通り、JAVAによる3D描画についてご教授いただきたく、投稿します。 開発環境はeclipse+Visual Swing for Eclipse(プラグイン)、jdk6update18です。 ただし、elipseのプラグインには特にこだわりません。 開発目的は2つありまして、  ・初心者(学生)にサンプルとして紹介する  ・化学式の可視化のため、きちんとしたアプリケーションとして利用する 3Dグラフィックについて、簡単に調べたところ、とりあえず  ・JAVA 3D API  ・JAVA OpenGL の2通りを見つけました。 ご回答は、これらの主な違い、それぞれの長所短所についてならなんでも歓迎です。 わがままを聞いていただけるなら、特に  ・JOGLがSwingと使われているところはありましたが、JAVA 3D APIの方はどうか  ・マルチプラットフォームの観点から、JOGLのアプリを作って配布する場合、簡単にできるか   (dllがあるとか・・・)  ・導入として簡単、難しいが複雑な機能がある、といった違いがあるか  ・技術としての完成度 などの点について、ご意見お持ちの方がいらっしゃればお願いいたします。

    • ベストアンサー
    • Java
  • JAVAプログラムをWEB表示させるには・・・

    import java.awt.*; import javax.swing.*; class Test { public static void main(String args[]) { Frame frm = new Frame("テスト"); frm.setLayout(null); frm.setSize(new Dimension(450,550)); frm.setVisible(true); JFormattedTextField[] array = new JFormattedTextField[45]; for(int i = 0 ;i < array.length ; i++){ array[i] = new JFormattedTextField (); frm.add(array[i]); array[i].setSize(65, 22); array[i].setLocation(121+(i%3)*66, 130+(i/3)*22); } } } フレームにいくつかのテキストを入れただけの簡単なプログラムなのですが、これをJSPでWEB表示させたいのですが・・・・なかなかうまくいかなく困ってます。色々サイトを見ているのですが、解説だとわかりにくく、サンプルコードを載せてるところを探しているのですが、それも見つかりません。JAVAプログラムをJSPでWEB表示させるには、どのような方法があるのか教えていただけないでしょうか?よろしくお願いします。

    • ベストアンサー
    • Java
  • Java3Dをインストールしたが動作エラーとなりま

    JDK1.8.0_74をインストールし、コンパイル、正常動作も行われていました。 そこで、次にJava3D API(java3d-1_5_1-windows-amd64.exe)をインストールしました。 コマンドプロンプトでサンプルプログラムのコンパイルをした後、実行すると末尾に記載のメッセージが表示されてしまいます。 JDKの環境変数のうちユーザー環境変数に TEMP と TMP の2つが表示されていますが、PATH (bin フォルダ)の指定がなく、これが原因しているのではないかと思いますが、新規にPATHを作る場合の変数値をどのようにしたらよいかわかりません。 尚、システム環境変数については、PATHが・・・\Program Files\Java\ jdk1.8.0_74\bin; となっています。(・・・の部分は設定変更をしていません) 上記以外のことが原因しているのであれば、併せて教えてください。 メッセージ Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.NoClassDefFoundError: javax/media/j3d/Canva s3D at java.lang.Class.getDeclaredMethod0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Unknown Source) at java.lang.Class.privateGetMethodRecursive(Unknown Source) at java.lang.Class.getMethod0(Unknown Source) at java.lang.Class.getMethod(Unknown Source) at sun.launcher.LauncherHelper.validateMainClass(Unknown Source) at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source) Caused by: java.lang.ClassNotFoundException: javax.media.j3d.Canvas3D at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.mice.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 7 more

  • Java3Dで開発したプログラムを一般の人に見てもらうには

    開発してきた回転機械の構造と運転状態を3Dアニメーションで一般の人に見てもらおうと考えてJava3Dによりプログラムを開発中です。 開発途中でインターネットを通して何人かの仲間に見てもらおうと思い仲間のパソコンにはJava3Dをインストールしてもらおうしましたが、多くの仲間はJavaをインストールし環境するのも嫌い、ましてJava3Dのインストールまではおよびもつかない状態です。 通常のパソコンにはJREだけは既にインストールされていますが、このJREだけでインターネットを通じて私が開発しているJava3Dによるプログラム(アプレット形式)を見てもらうには、どのようにすればよいでしょうか? 例えば、プログラムソースをサーブレット(Tomcatなど)で書き換えてWebサーバー上で動くようにすればよいのでしょうか? 私は、まだサーブレット(Tomcatなど)の知識もなく、これらもこれからの勉強ということになりますが、一般の人々に見てもらえるようにする最も簡単・早道な方法があればアドバイスをお願いします。

    • ベストアンサー
    • Java
  • Javaのソースコードを教えてください!

    Javaのソースコードを教えて欲しいです コンソールに表示して3×3の○×ゲームを作ります 条件は ・メソッドを必ず使う ・〇‪✕‬ゲームをJavaのコンソール(println()やprint())を用いて作成 ・○×を書く場所は、数値を入力して対応した場所に〇や‪✕‬を出力 ・勝利判定などゲームができる所までは作成しない ・見た目なので、「この数値はここに書く というようなナビゲーション」、「実際に入力しした後の盤面」は実装するとこ ・9回入力したらゲーム終了 です

  • ソースコードの入手方法

    ただいま独学でjavaを勉強しています。巷にあるプログラミングのテキスト、教本を見ていると『言語になれるコツはソースコードをたくさん読んで理解すること!』なんて書いてありますけど、そのソースコードってどこにあるんですか?また、どうやって見るんですか? HTMLのソースコードならネット上のHPは右クリックしてすぐにでも見れますけど、javaのソースコードは市販のテキストのサンプルコードでしか見たことがありません。どなたかjavaのソースコードの入手方法を教えてください。

    • ベストアンサー
    • Java
  • JAVAのソースコード実行法が不明

    プログラミング超初心者です。使用OSはWindowsXPです。JAVAの開発キットやコンパイラなどはインストールしてあるのですが、メモ帳などを開いて、例えば下記のようなコードを入力するとします。 class Sample { public static void main(String args[]) { System.out.println("教えて!goo"); } } わからないのは次の作業で、そのあと、このコードを実行するにはどうすればよいいのでしょうか?なにぶんにもパソコンにまだ疎いゆえ、具体的に教えて頂けるとたいへんありがたいです。 自分で調べた結果、どうやらMS-DOSプロンプトを使用することまではわかったのですが、そのプロンプトもWinXPで見当たらないのです。 また、MS-DOSで使う多種のコマンド「cd 」「md」「copy」などの意味や書式・用法を解説したよいサイトやおすすめの書籍などありましたらぜひ紹介願えないでしょうか。 ちなみお伺いするのですが、こうしたテキストに入力したコードをコンパイルして実行するときというのは必ずMS-DOSプロンプト上でしか実行結果が表示されないのでしょうか?

    • ベストアンサー
    • Java

専門家に質問してみよう