JavaFX-恥知らずなHelloWorld

HellWorld

「JavaFX入門」でOracleが提案した例からのHelloWorld起動の説明。ただし、影響はありません。つまり、IntelliJ IDEAおよび一般的にはIDEはありません。 Windows PCに実装されています。 作品は「ティーポット-ティーポット」クラスに属します。 コマンドラインから最も単純なアプリケーションをコンパイルして実行するには、このアプリケーションのコードが記載されているチュートリアルに十分な情報がないことが突然判明しました。







経験豊富な人にとっては、そのようなメモはおかしく見えるかもしれません。 ただし、熊手がまき散らされた畑にたどり着いたばかりの人にとっては、このようなガイドは役に立つでしょう。



尋ねる-なぜ、実際には? すべてのHelloWorldsのようなトレーニング用。 IDEの価値を軽視して宣言したくありません。 ハードコアのみ!」しかし、コマンドラインを使用すると、すべてのメカニズムを理解していない場合でも、少なくとも内部を見ることができます。 特に、 食べ物のプログラミングの経験すでにある場合。 突然、地平線とマスターを拡大したいという願望がありました。 少なくとも試してみてください。



QwertovskyからのコマンドラインでのJavaの操作は、 非常に素晴らしい投稿です 。 それにもかかわらず、かろうじて裸のコンソールをさらに没入させるには、ウィンドウが必要です。 できれば、デスクトップアプリケーションの形式で。 JavaプログラムのGUIを作成するためのオプションがあり、人々がそれについてどう考えているかを読みましたが、これまでにJavaFXをやめました。 さまざまなインターネットサイトでロシア語のJFXについてかなりの部分が書かれており、重要な部分は最初のバージョンについてであることが判明しました。 したがって、Oracleサイトを掘り下げる必要があります。



jfxpub-overviewは、JavaFXアプリケーションはJavaで記述されているため、お気に入りのエディターまたはIDE(NetBeans、Eclipse、またはIntelliJ IDEA)を使用して作成できることを示しています。 www.oracle.comにアクセスし 、JavaFX 2.2.nがサポートされているOracle JDK 7をダウンロードしてから、 jfxpub-get_startedチュートリアルを使用して、レイヤー、スタイルシート、視覚効果の操作を示す簡単なアプリケーションを作成することをお勧めします。 また、JavaFX Scene Builderを使用して、コーディングなしでユーザー・インターフェースを開発することも推奨されていますが、これは後のものです。



JDKおよび(念のため)JREをインストールしました。 PATHシステム変数に何も登録されておらず、手動で登録しませんでした。



上記の例をそのまま使用します。

HelloWorld.java
package helloworld; import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class HelloWorld extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) { primaryStage.setTitle("Hello World!"); Button btn = new Button(); btn.setText("Say 'Hello World'"); btn.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { System.out.println("Hello World!"); } }); StackPane root = new StackPane(); root.getChildren().add(btn); primaryStage.setScene(new Scene(root, 300, 250)); primaryStage.show(); } }
      
      





このマニュアルの著者は、NetBeans IDE 7.3の使用を提案しています。 仲良くしましょう。 D:\ GetStart \というプロジェクト用のフォルダを作成します。その中に、srcソース用のフォルダと、コンパイル結果用のフォルダを作成します。 試用クラスはhelloworldパッケージに属しているため、srcに同じ名前のフォルダーを作成し、HelloWorld.javaファイルをそこに配置する必要があります。



これをコンパイルするために、プロジェクトルートにcompile.cmdファイルを作成します。 コンパイルコマンドを変更する方が便利です。コマンドラインインタープリターのメモリに依存する必要はありません。一般に、cmd.exeなしで、お気に入りのファイルマネージャー、または少なくともファイルエクスプローラーを使用できます。



jfxpub-overviewによると、JavaFXはJava SE 7 JREおよびJDKに完全に統合されています。 ダウンロードページでは、Java SE 7用のJavaFXをダウンロードしたい人は、単にJava SE 7をダウンロードできます。JDKファイルには、javafxcとjavafxはありません。 どうやら、他のJavaファイルと同じ方法でJFXアプリケーションをコンパイルできます。 したがって、バッチファイルに2行を記述します。

 @"C:\Program Files\Java\jdk1.7.0_40\bin\javac" -d out src\helloworld\HelloWorld.java @pause
      
      





2行目は、エラーメッセージを考慮する機会を提供します。 表示されるウィンドウにcmd.exeが「続行するには任意のキーを押してください...」というメッセージのみを表示すると、前のコマンドがエラーなしで実行されました。



ただし、起動すると長いシートが生成され、おそらく出力ウィンドウに収まりません。 18個のエラー、見つからないもの、存在しないもの。 すべてのメッセージを完全に表示するには、エラー出力ストリームをファイル「2> result.txt」にリダイレクトすることにより、CMDファイルの最初の行を補足できます。

間違い
 src\helloworld\HelloWorld.java:3: error: package javafx.application does not exist import javafx.application.Application; ^ src\helloworld\HelloWorld.java:4: error: package javafx.event does not exist import javafx.event.ActionEvent; ^ ... symbol: class Scene location: class HelloWorld src\helloworld\HelloWorld.java:15: error: method does not override or implement a method from a supertype @Override ^ 18 errors
      
      





コンパイラーはJFXパッケージを見つけることができません。 彼に話す必要がありますが、このためには自分で調べる必要があります。 たぶん私はあまり注意深く調べませんでしたが、オラクルのサイトでは見つけませんでした。むしろ、 フォーラムでしか見つけませんでした。 目的のファイルはjfxrt.jar(論理-J ava F X R un T ime)であり、JREにあります。つまり、たとえばC:\ Program Files \ Java \ jre7 \ libおよびC:\ Programです。ファイル\ Java \ jdk1.7.0_40 \ jre \ lib。 -classpathオプションを追加します。

 @"C:\Program Files\Java\jdk1.7.0_40\bin\javac" -d out -classpath "C:\Program Files\Java\jre7\lib\jfxrt.jar" src\helloworld\HelloWorld.java @pause
      
      





コンパイルします。 ./out/helloworldフォルダーが作成され、HelloWorld.classファイルがその中にあります。 甘やかすために、.javaファイルで、パッケージの名前をパッケージHelloWorldに変更すると、対応するレジスタ-./out/HelloWorldにフォルダーが作成され、アプリケーションのみが起動しません。



走りたいです。 Oracleフォーラムで言及されているトピックでは、jarでパッケージ化するオプションが提案されていますが、最初にこのように実行してみましょう。 事前に指定されたJFXライブラリを使用して、バッチファイルrun.cmdを作成しましょう。

 @"C:\Program Files\Java\jdk1.7.0_40\bin\java" -classpath "C:\Program Files\Java\jre7\lib\jfxrt.jar" helloworld.HelloWorld @pause
      
      





開始すると、エラーが発生します。

 Error: Could not find or load main class helloworld.HelloWorld
      
      





さて、クラスパスはまだ小さすぎます。コンパイルされたクラスの居住地も示す必要があります。

 @"C:\Program Files\Java\jdk1.7.0_40\bin\java" -classpath "C:\Program Files\Java\jre7\lib\jfxrt.jar;.\out" helloworld.HelloWorld @pause
      
      





このコマンドを実行すると、最終的にget_startedの図にあるボタンのあるウィンドウが表示されます。 この場合、cmd.exeコンソールも表示されます。 ウィンドウ内のボタンをクリックすると、コンソールに「Hello World!」というメッセージが表示されます。



それでも瓶に詰めたいです。 javafxpackagerユーティリティを使用します。 パラメーターなしでコンソールで起動され、オプションに関するかなり詳細で理解可能なヘルプを提供します。 jar.cmdファイルを作成できます。

 @"C:\Program Files\Java\jdk1.7.0_40\bin\javafxpackager" -createjar -appclass helloworld.HelloWorld -srcdir .\out -outfile HelloWorld -v @pause
      
      





指揮者から、私をダブルクリックすることにより、結果の瓶が起動します。 ただし、ファイルマネージャーはこのファイルをアーカイブとして入力します(実際にはファイルです)。 さらに、エクスプローラーでは、ファイルはコンソールなしで起動されます。 したがって、便宜上、run_jar.cmdも追加しました。

 @"C:\Program Files\Java\jre7\bin\java.exe" -jar HelloWorld.jar @pause
      
      





うまくいく!



さらに、このマニュアルでは、要素の配置の基本を教えることを目的としたログインおよびパスワード入力ウィンドウを作成することを提案しています。その後、カスケードスタイルシート(CSS)を使用してこのウィンドウからスタイリッシュな美しさを作成し、次に同じフォームを描画しますが、FXMLを使用します。 これらすべてのアクションには、小さな熊手が散らばっています。 特に複雑なことはありません-マニュアルに記載されていない非自明性であり、その結果、プログラムをコンパイルまたは実行できません。



All Articles