簡體   English   中英

有沒有辦法從 html href URI 啟動特定的 java class ?

[英]Is there a way to start a specific java class from html href URI?

場景是:我正在嘗試創建訪問PhET離線模擬的 web 頁面。 他們有 HTML5 模擬,使用瀏覽器在我的本地機器上運行非常好,沒有問題; 和 java 模擬,需要 java。 相關的 Java 仿真打包在 jar 文件中。 例如,四個核物理模擬打包在名為“nuclear-physics_all.jar”的 jar 文件中。

提取這個 jar 文件,我可以看到一個文件“jar-launcher.properties”,它定義了如果我直接運行java -jar nuclear-physics_all.jar可以選擇什么文件內容為:

$ more jar-launcher.properties 
#created by edu.colorado.phet.buildtools.java.JavaBuildCommand
#Fri Aug 09 20:00:55 MDT 2013
project.name=nuclear-physics
project.flavor.alpha-decay.title=Alpha Decay
project.flavor.radioactive-dating-game.mainclass=edu.colorado.phet.nuclearphysics.RadioactiveDatingGameApplication
project.flavor.beta-decay.args=
project.flavor.radioactive-dating-game.title=Radioactive Dating Game
project.flavor.nuclear-fission.args=
project.flavor.nuclear-fission.title=Nuclear Fission
project.flavor.beta-decay.title=Beta Decay
project.flavor.alpha-decay.args=
project.flavor.radioactive-dating-game.args=
project.flavor.nuclear-fission.mainclass=edu.colorado.phet.nuclearphysics.NuclearFissionApplication
project.flavor.beta-decay.mainclass=edu.colorado.phet.nuclearphysics.BetaDecayApplication
project.flavor.alpha-decay.mainclass=edu.colorado.phet.nuclearphysics.AlphaDecayApplication

Using command line I can launch one of the simulation (eg, "Alpha Decay") in this jar file instead of the chooser: java -cp./nuclear-physics_all.jar edu.colorado.phet.nuclearphysics.AlphaDecayApplication

這是我的問題:
在模擬列表中,這四個模擬(阿爾法衰減、貝塔衰減、核裂變、放射性約會游戲)分別列出,我希望完全啟動一個用戶點擊。 但是在 web 頁面(離線版本,因此 uri 將以 file:// 開頭)我只能使用href="file:///<path>/nuclear-physics_all.jar"這將啟動選擇器而不是模擬我想。 有沒有辦法用文件 URI 啟動一個模擬(類)?

一種 hack'ish 解決方案:顯然,您可以在設置中運行JAR 文件,而無需參數。 該 JAR 文件配置為調用特定功能。

所以:

  • 提取 JAR 文件
  • 在 manifest 中設置不同的 Main class, 詳見
  • 從修改后的內容構建一個的 JAR 文件
  • 重復

換句話說:訣竅在於您可以“運行” JAR 文件,因為您指定了它應該調用的 class。 當您知道您想要哪些主類時,您可以復制 JAR,只需調用不同的主類即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM