私が作っている既に実行中のアプリケーションを閉じてから再起動するには、ボタンをクリックするなどしてアプリケーションを再起動する他の言語では、私はJavaFxとJavaの初心者です。この問題の解決策を教えてください。JavaFxでアプリケーションを再起動
答えて
この質問には詳細がありません。 JavaFXアプリケーションについて言及しましたが、アプリケーションのデプロイ方法を理解することが重要です。 Webブラウザ、Java Web Startアプリケーション、スタンドアロンのJAR、または自己完結型のネイティブアプリケーションとして実行されていますか?どのようにアプリケーションを始めるのですか?これらの質問に答えがあれば、具体的な質問に簡単に答えることができます。
次の例はJavaFXではありませんが、ここで使用されているアプローチは、JavaFXアプリケーションをデプロイできるいくつかの方法で機能します。うまく動作するアプリケーションを再起動する方法の1つは、スクリプトからアプリケーションを起動することです。スクリプトの中にはwhileループがあり、プログラム終了コードに基づいてプログラムを継続的に再起動します。ここでは、Linuxプラットフォーム上でのIntelliJを開始bashシェルスクリプトの例です。この例では
while true ; do
eval "$JDK/bin/java" $ALL_JVM_ARGS -Djb.restart.code=88 $MAIN_CLASS_NAME $*
test $? -ne 88 && break
done
、起動スクリプトは、アプリケーションのパラメータとして「jb.restart.code」を渡しています。 IntelliJが再起動したい場合、その値88を終了コードとして返します。スクリプトはアプリケーションの終了コードを観察し、値が88の場合はアプリケーションを再起動します。
このアプローチはほとんどのプラットフォームでうまくいきますが、スクリプトを使用してアプリケーションを開始する必要があります。
ネイティブ自己完結型アプリケーションについてはどうですか? –
それがネイティブな自己完結型アプリケーションであれば、どのOSが元のOSですか?これらの詳細は、答えが何であるかに違いがあります。 – axiopisty
現在、私はexecでSystem.exit()を実行してWindowsソリューションを実装しました。私は、LinuxとMacOSが相対的なシェルコマンドで同じ経路をたどると考えています。 –
解決策の1つは、起動スクリプトのcommandlineとworking dirをmain()メソッドに渡すことです。 ProcessBuilderを使用すると、アプリケーションを再起動できます。もう一つの可能性は、カスタムクラスローダーでアプリケーション全体を開始することです(例えば、Springプロジェクトはソースベースに適切なクラスローダーを持っています)。基本的にはメインクラスを別のクラスローダーで起動して再起動することができます。最初のインスタンス。
これは実際には非常に新しく、ちょっと混乱していますあなたの答えを得ていない、私に助けてくれるかもしれないコードを教えてもらえますか、それを説明する記事を参照してください。 – AymenDaoudi
実際にはClassloaderの特徴はかなり複雑です。 JavaからOSプロセスを開始することができるので、Java実行可能ファイルの場所とクラスパスの設定方法を知ることが必要です。 クラスパスについては、System.getProperty( "java.class.path")などを使用して見つけることができます。起動時にアプリケーションに渡さなければならないjava.exeの場所。 Runtime.getRuntime()。exec(..)を使用するか、ProcessBuilderだけでアプリケーションの完全なコピーを開始できます。 –
私はそれを試して、あなたの助けのためにthxを参照してください – AymenDaoudi
retstart.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent t) {
if(getOnCloseRequest()!=null){
getOnCloseRequest().handle(new WindowEvent(getScene().getWindow(), WindowEvent.WINDOW_CLOSE_REQUEST));
//write code to invoke application instance again
}else{
close();
}
}
});
- 1. Eclipseでアプリケーションを再起動
- 2. JavaFXでのアプリケーションの起動と終了
- 3. アプリケーションは、再起動
- 4. Androidアプリケーションを再起動
- 5. Eclipseアプリケーションを再起動
- 6. javafxのアプリケーション起動メソッドの例外
- 7. 起動時に再起動アプリケーションを起動する
- 8. WebSphere 9 - 再起動アプリケーション
- 9. Chromeアプリケーションの再起動
- 10. setOnClickListenerでアプリケーションを再起動する
- 11. Apache Tomcat 6.0でのアプリケーションの再起動
- 12. フォームを再起動しますが、アプリケーションを再起動しませんか?
- 13. 再起動後にUSB_DEVICE_ATTACHED起動アプリケーションを防止する
- 14. アプリケーションを再起動してもLocationManagerが起動しない
- 15. アプリケーションを再起動しないでVaadin UIを再ロードする
- 16. Androidアプリケーションを再起動する
- 17. クラッシュ時にアプリケーションを再起動
- 18. JavaFXアプリケーションの起動が遅いのはなぜですか?
- 19. Azure Webアプリケーションで高度なアプリケーションを再起動するPowershell
- 20. Androidアプリケーションのクラッシュ後の再起動
- 21. C#アプリケーションの再起動後もカウントダウンタイマー
- 22. Nopcommerceアプリケーション再起動停止ビジュアルスタジオ2017
- 23. 問題:再起動するアプリケーション
- 24. ホームボタンとしてのアンドロイド再起動アプリケーション
- 25. プログラムでSpring起動アプリケーションを再起動する/ Springコンテキストを更新する
- 26. 再起動後に再起動する
- 27. アプリケーションを再起動せずにアプリケーションをローカライズ
- 28. アプリケーションの再起動後にクォーツ.Netを再開する
- 29. アプリケーションの再起動時にSQLiteデータベースを再作成
- 30. 再起動後にApacheを再起動できない
はい、それについてです。しかし、なぜあなたは言語を変更するためにアプリを再起動する必要がありますか?たぶん、再起動せずに変更することはできますか?あなたのアプリの言語設定は何ですか? –
さて、私はこれらのメカニズムについてよく分かりませんが、私が望むのは、他の言語のすべてのオブジェクト/コントロールを再定義することです。 – AymenDaoudi
[JavaFX 2と国際化]の@UlukBiyのソリューションをチェックしてください(http://stackoverflow.com/questions/10143392/javafx-2-internationalization)の質問です。 – tarrsalah