いきなりつまずいてしまいましたが、Sun Developer Network (SDN) のTechnical Articles and Tips > JavaFX Technologyに、6箇月18回にわたって連載される一括変換型JavaFXスクリプト指導書について、主に逐次解釈型JavaFXとの相違点を中心にまとめておきたいと思います。
まずは、第1回目の「Creating Rich Internet Applications With Compiled JavaFX Script Technology」から。
1.定数値の記述方法の変更
Frameオブジェクトのbackground属性に指定する色名や、Fontオブジェクトのstyle属性に指定する書体名などの定数値は、逐次解釈型ではそれぞれwhite、BOLDのようにクラス名なしで記述していましたが、一括変換型ではColor.WHITE、FontStyle.BOLDのようにクラス名付きで記述します。
2.手続きの記述方法の統一
Buttonオブジェクトのaction属性などに指定する戻り値なしの手続きは、逐次解釈型ではoperation()として定義していましたが、一括変換型では戻り値なしのfunction()として定義します。operation()はfunction()に統一されます。
2008年2月2日土曜日
一括変換済みJavaFXコードが実行できるようになりました
前回の投稿で記した、一括変換済みJavaFXコードの実行時誤りが解決しました。
前回の投稿でも記しましたが、私が使用していたJDKの版数は、JDK 1.5.0_11でした。これを、JDK 1.6.0_04(今日現在の最新版)に更新することにより、無事一括変換済みJavaFXコードを実行することができるようになりました。
いつかはJDK 6に更新しなくてはと思いながら先延ばししていたものですから、すっきりしました(どうしても、「動いているものはいじるな」という気が働いてしまうものですから)。また、NetBeansも、6.0.1日本語版に更新しなくてはと思っていたので、ちょうど良かったです(それにしても、NetBeans 6.0.1日本語版は、なかなか公開されませんね)。
JDKを更新した後、念のため、
今度のjavafx命令は、実行しても余計な報告文を表示しないので、すっきりしてます。また、私のように、CLASSPATH環境変数に何かを設定していても、そのまま(CLASSPATHの値を空にすることなく)実行できます:-)
前回の投稿でも記しましたが、私が使用していたJDKの版数は、JDK 1.5.0_11でした。これを、JDK 1.6.0_04(今日現在の最新版)に更新することにより、無事一括変換済みJavaFXコードを実行することができるようになりました。
いつかはJDK 6に更新しなくてはと思いながら先延ばししていたものですから、すっきりしました(どうしても、「動いているものはいじるな」という気が働いてしまうものですから)。また、NetBeansも、6.0.1日本語版に更新しなくてはと思っていたので、ちょうど良かったです(それにしても、NetBeans 6.0.1日本語版は、なかなか公開されませんね)。
JDKを更新した後、念のため、
archive.zipを展開しなおし、一括変換も再度行いました。
なお、以前の投稿で
記したように、
OpenJFX逐次解釈器のbinディレクトリを
PATH環境変数に設定している場合は、「OpenJFX\trunk\bin;」を「archive/openjfx-compiler/dist/bin
;」に置き換えるのを忘れないでください(「OpenJFX\trunk\bin;」の前に追加してもかまいませんが)。今度のjavafx命令は、実行しても余計な報告文を表示しないので、すっきりしてます。また、私のように、CLASSPATH環境変数に何かを設定していても、そのまま(CLASSPATHの値を空にすることなく)実行できます:-)
2008年2月1日金曜日
JavaFX一括変換器の変換誤りの原因が分かりました
前回の投稿で述べたJavaFX一括変換器の誤りの原因が分かりました。
なんと、一括変換器の不具合ではなく、コード例1のコードに誤りがありました。コード例の中ほどに、
-----------------------
MessageDialog {
という記述があります。そのmessage属性の設定文で、閉じ二重引用符が抜けていることが原因でした(正しくは、「・・・ Power of Java"」と二重引用符で終わらなければならない)。
不足している二重引用符を追加すると、無事一括変換が実行されます。
ところが、実行に移ると、今度は次のような誤りが発生してしまいました。
------------------------------
Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
...
------------------------------
指導書には、JRE 5以降を使用すれば実行できると書いてあり、私は、JDK 1.5.0_11を使用しているのですが、どうもそうではないようです(まだ、Javaの版数に原因があると決まったわけではないのですが)。「一難さってまた一難」というところですが、また何か分かりましたら投稿します。
どなたか、JDK 6で試された方はいらっしゃいませんか。
なんと、一括変換器の不具合ではなく、コード例1のコードに誤りがありました。コード例の中ほどに、
-----------------------
MessageDialog {
title: "JavaFX Script Rocks!"--------------------------
// This string has a newline in the source code.
message: "JavaFX Script is Simple, Elegant,
and Leverages the Power of Java
という記述があります。そのmessage属性の設定文で、閉じ二重引用符が抜けていることが原因でした(正しくは、「・・・ Power of Java"」と二重引用符で終わらなければならない)。
不足している二重引用符を追加すると、無事一括変換が実行されます。
ところが、実行に移ると、今度は次のような誤りが発生してしまいました。
------------------------------
Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
...
------------------------------
指導書には、JRE 5以降を使用すれば実行できると書いてあり、私は、JDK 1.5.0_11を使用しているのですが、どうもそうではないようです(まだ、Javaの版数に原因があると決まったわけではないのですが)。「一難さってまた一難」というところですが、また何か分かりましたら投稿します。
どなたか、JDK 6で試された方はいらっしゃいませんか。
一括変換型JavaFX指導書の連載が始まったのですが…
Sun Developer Network (SDN) のTechnical Articles and Tips > JavaFX Technologyで、一括変換型JavaFXスクリプトについての18回連載が開始されました。
早速、第1回目の「Creating Rich Internet Applications With Compiled JavaFX Script Technology」を読み、勇んでJavaFX一括変換器の保管ファイルを入手し、記事に載っていたコード例1を一括変換してみました。ところが、「line 56:0 rule RBRACE failed predicate: { !BraceQuoteTracker.rightBraceLikeQuote(CUR_QUOTE_CTX) }?」という誤り文が、繰り返して表示されるだけで、一括変換できませんでした。
内容から察するに、中括弧の処理がうまくできないようですが、コード例には特に問題があるようには思えません。また、誤り文の表示が無限に繰り返される点からも、一括変換器自体に問題がありそうです。
JavaFXの一括変換器が利用できるのを心待ちにしていただけに、ちょっと残念です。
何か分かったら、また投稿します。
早速、第1回目の「Creating Rich Internet Applications With Compiled JavaFX Script Technology」を読み、勇んでJavaFX一括変換器の保管ファイルを入手し、記事に載っていたコード例1を一括変換してみました。ところが、「line 56:0 rule RBRACE failed predicate: { !BraceQuoteTracker.rightBraceLikeQuote(CUR_QUOTE_CTX) }?」という誤り文が、繰り返して表示されるだけで、一括変換できませんでした。
内容から察するに、中括弧の処理がうまくできないようですが、コード例には特に問題があるようには思えません。また、誤り文の表示が無限に繰り返される点からも、一括変換器自体に問題がありそうです。
JavaFXの一括変換器が利用できるのを心待ちにしていただけに、ちょっと残念です。
何か分かったら、また投稿します。
登録:
投稿 (Atom)