我如何 add/embed java 申请 to/in 我的网站?
How do I add/embed java applications to/in my website?
如何 add/embed java 应用 to/in 我的网站?
我有一个个人网站。其中一个页面是简历页面,最近我将我的简历的 PDF 版本嵌入到此页面并添加了一个按钮。当按下 PDF 的按钮时。
这让我想到,我有许多 Java Swing 和 JavaFX 应用程序,我可以用类似的方式嵌入它们。我认为如果应用程序可以从网站 运行 获得,那就太好了,但我知道这可能有些困难。如果这是第一个想法是 'overly involved',我的第二个想法只是简单地将应用程序放在我的网站上,以便可以下载它们并 运行 在用户计算机上。
我以前从未做过这样的事情,所以我很可能问错了问题。因此,我们欢迎任何帮助,即使只是帮助我修改我的问题或提供学习链接 material。
谢谢。
我最近做了这个,并在 Whosebug 上做了一个关于 hit here 的 post。您可能想查看
Copy/Pasted请求页面:
创建一个JavaFX应用项目,e。 G。 "FxInHtml".
创建您的 JavaFX 应用程序,例如。 g.:
package application;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
Group root = new Group();
Label label = new Label( "Hello World!");
root.getChildren().add( label);
Scene scene = new Scene(root,200,200);
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
在FxInHtml/src/application
现在您可以使用 javafx 打包工具来完成剩下的工作。您可以在 JDK 安装的 bin 文件夹中找到它。请注意,在 Java 7 中它被称为 javafxpackager,而在 Java 8 中它被称为 javapackager。假设我们使用 Java 8 并且您的开发环境将 class 文件编译到 bin 文件夹中。
打开命令 shell 并导航到项目文件夹 FxInHtml。
使用
创建包
javapackager -createjar -outdir compiled -outfile myapp -appclass application.Main -srcdir bin -v
现在你在编译文件夹中有一个可执行文件myapp.jar。
使用
创建 jnlp 和 html 文件
javapackager -deploy -outdir deployed -outfile outfile -width 400 -height 400 -name AppName -appclass application.Main -v -srcdir compiled
需要注意的重要一点是 "srcdir" 从来不是任何包含 java classes 的目录,并且每个 javapackager 指令都是不同的。一个 javapackager 调用的输出目录是另一个的源目录。
现在您调用了该命令,您得到了一个新文件夹 "deployed",其中包含您需要的所有文件:myapp.jar、outfile.html、outfile.jnlp.
如果您在浏览器中打开 outfile.html,您已经可以看到嵌入式 JavaFX 应用程序。很可能您必须更改安全设置,例如。 G。允许执行 "file:/" 个应用程序。但请记住,您在开发后再次删除 "file:/",这是一个安全风险。或者您可以签署 jar 文件,无论如何您最终都必须这样做。您也可以使用 javapacker 进行签名。
这是最小的完整示例。
但让我们看看生成的文件。生成的 outfile.html 如下所示:
<html><head>
<SCRIPT src="http://java.com/js/dtjava.js"></SCRIPT>
<script>
function launchApplication(jnlpfile) {
dtjava.launch( {
url : 'outfile.jnlp'
},
{
javafx : '8.0+'
},
{}
);
return false;
}
</script>
<script>
function javafxEmbed() {
dtjava.embed(
{
url : 'outfile.jnlp',
placeholder : 'javafx-app-placeholder',
width : 200,
height : 200
},
{
javafx : '8.0+'
},
{}
);
}
<!-- Embed FX application into web page once page is loaded -->
dtjava.addOnloadCallback(javafxEmbed);
</script>
</head><body>
<h2>Test page for <b>AppName</b></h2>
<b>Webstart:</b> <a href='outfile.jnlp' onclick="return launchApplication('outfile.jnlp');">click to launch this app as webstart</a><br><hr><br>
<!-- Applet will be inserted here -->
<div id='javafx-app-placeholder'></div>
</body></html>
为了嵌入各种JavaFX应用程序,您需要modify/duplicate这部分:
dtjava.embed(
{
url : 'outfile.jnlp',
placeholder : 'javafx-app-placeholder',
width : 200,
height : 200
},
{
javafx : '8.0+'
},
{}
);
并在您的 html 中使用此 div 标签
的占位符引用该应用程序
<div id='javafx-app-placeholder'></div>
例如,如果您有一个额外的 barchart.jnlp,您可以像这样添加它(我删除了 webstart 部分,因为我们希望嵌入我们的应用程序):
<html><head>
<SCRIPT src="http://java.com/js/dtjava.js"></SCRIPT>
<script>
function javafxEmbed() {
dtjava.embed(
{
url : 'outfile.jnlp',
placeholder : 'javafx-app-placeholder',
width : 200,
height : 200
},
{
javafx : '8.0+'
},
{}
);
dtjava.embed(
{
url : 'barchart.jnlp',
placeholder : 'barchart-placeholder',
width : 400,
height : 400
},
{
javafx : '8.0+'
},
{}
);
}
<!-- Embed FX application into web page once page is loaded -->
dtjava.addOnloadCallback(javafxEmbed);
</script>
</head><body>
<h2>Test page for <b>AppName</b></h2>
<!-- Applet will be inserted here -->
<div id='javafx-app-placeholder'></div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tem
<div id='barchart-placeholder'></div>
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequa ...
</body></html>
如何 add/embed java 应用 to/in 我的网站?
我有一个个人网站。其中一个页面是简历页面,最近我将我的简历的 PDF 版本嵌入到此页面并添加了一个按钮。当按下 PDF 的按钮时。
这让我想到,我有许多 Java Swing 和 JavaFX 应用程序,我可以用类似的方式嵌入它们。我认为如果应用程序可以从网站 运行 获得,那就太好了,但我知道这可能有些困难。如果这是第一个想法是 'overly involved',我的第二个想法只是简单地将应用程序放在我的网站上,以便可以下载它们并 运行 在用户计算机上。
我以前从未做过这样的事情,所以我很可能问错了问题。因此,我们欢迎任何帮助,即使只是帮助我修改我的问题或提供学习链接 material。
谢谢。
我最近做了这个,并在 Whosebug 上做了一个关于 hit here 的 post。您可能想查看
Copy/Pasted请求页面:
创建一个JavaFX应用项目,e。 G。 "FxInHtml".
创建您的 JavaFX 应用程序,例如。 g.:
package application;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
Group root = new Group();
Label label = new Label( "Hello World!");
root.getChildren().add( label);
Scene scene = new Scene(root,200,200);
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
在FxInHtml/src/application
现在您可以使用 javafx 打包工具来完成剩下的工作。您可以在 JDK 安装的 bin 文件夹中找到它。请注意,在 Java 7 中它被称为 javafxpackager,而在 Java 8 中它被称为 javapackager。假设我们使用 Java 8 并且您的开发环境将 class 文件编译到 bin 文件夹中。
打开命令 shell 并导航到项目文件夹 FxInHtml。
使用
创建包javapackager -createjar -outdir compiled -outfile myapp -appclass application.Main -srcdir bin -v
现在你在编译文件夹中有一个可执行文件myapp.jar。
使用
创建 jnlp 和 html 文件javapackager -deploy -outdir deployed -outfile outfile -width 400 -height 400 -name AppName -appclass application.Main -v -srcdir compiled
需要注意的重要一点是 "srcdir" 从来不是任何包含 java classes 的目录,并且每个 javapackager 指令都是不同的。一个 javapackager 调用的输出目录是另一个的源目录。
现在您调用了该命令,您得到了一个新文件夹 "deployed",其中包含您需要的所有文件:myapp.jar、outfile.html、outfile.jnlp.
如果您在浏览器中打开 outfile.html,您已经可以看到嵌入式 JavaFX 应用程序。很可能您必须更改安全设置,例如。 G。允许执行 "file:/" 个应用程序。但请记住,您在开发后再次删除 "file:/",这是一个安全风险。或者您可以签署 jar 文件,无论如何您最终都必须这样做。您也可以使用 javapacker 进行签名。
这是最小的完整示例。
但让我们看看生成的文件。生成的 outfile.html 如下所示:
<html><head>
<SCRIPT src="http://java.com/js/dtjava.js"></SCRIPT>
<script>
function launchApplication(jnlpfile) {
dtjava.launch( {
url : 'outfile.jnlp'
},
{
javafx : '8.0+'
},
{}
);
return false;
}
</script>
<script>
function javafxEmbed() {
dtjava.embed(
{
url : 'outfile.jnlp',
placeholder : 'javafx-app-placeholder',
width : 200,
height : 200
},
{
javafx : '8.0+'
},
{}
);
}
<!-- Embed FX application into web page once page is loaded -->
dtjava.addOnloadCallback(javafxEmbed);
</script>
</head><body>
<h2>Test page for <b>AppName</b></h2>
<b>Webstart:</b> <a href='outfile.jnlp' onclick="return launchApplication('outfile.jnlp');">click to launch this app as webstart</a><br><hr><br>
<!-- Applet will be inserted here -->
<div id='javafx-app-placeholder'></div>
</body></html>
为了嵌入各种JavaFX应用程序,您需要modify/duplicate这部分:
dtjava.embed(
{
url : 'outfile.jnlp',
placeholder : 'javafx-app-placeholder',
width : 200,
height : 200
},
{
javafx : '8.0+'
},
{}
);
并在您的 html 中使用此 div 标签
的占位符引用该应用程序<div id='javafx-app-placeholder'></div>
例如,如果您有一个额外的 barchart.jnlp,您可以像这样添加它(我删除了 webstart 部分,因为我们希望嵌入我们的应用程序):
<html><head>
<SCRIPT src="http://java.com/js/dtjava.js"></SCRIPT>
<script>
function javafxEmbed() {
dtjava.embed(
{
url : 'outfile.jnlp',
placeholder : 'javafx-app-placeholder',
width : 200,
height : 200
},
{
javafx : '8.0+'
},
{}
);
dtjava.embed(
{
url : 'barchart.jnlp',
placeholder : 'barchart-placeholder',
width : 400,
height : 400
},
{
javafx : '8.0+'
},
{}
);
}
<!-- Embed FX application into web page once page is loaded -->
dtjava.addOnloadCallback(javafxEmbed);
</script>
</head><body>
<h2>Test page for <b>AppName</b></h2>
<!-- Applet will be inserted here -->
<div id='javafx-app-placeholder'></div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tem
<div id='barchart-placeholder'></div>
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequa ...
</body></html>