问题描述
我最近创建了一个带有 Java 后端和 React 前端的应用程序,我使用 Electron 和一些 Node 功能来捆绑应用程序并为其创建桌面应用程序。基本上,我决定将 Java 用于一些我需要的特定于 Java 的库。该应用程序将在端口 8080 上运行,从静态文件夹提供 React/JS 内容,Electron 包装器将使用一些 Node 库来启动 Java 进程,然后几秒钟后连接到 localhost:8080。>
大约有一半的时间这就像一个魅力,而另一半则显示一个没有错误的白屏!我已经无数次调试了这个问题,解决它的唯一方法是强制重新加载 Chromium 页面,该页面有时有效,有时则无效。显然,这对于用户使用我的应用程序是不可接受的。问题是,我对可能导致此问题的原因一无所知。
这是我用于电子应用程序的 main.js
const {app,browserWindow} = require('electron')
function createWindow () {
try {
var jarPath = './app.jar';
var kill = require('tree-kill');
var child = require('child_process').spawn('java',['-jar',jarPath,'']);
let win = new browserWindow({width: 1000,height: 730});
setTimeout(function() {
win.loadURL('http://localhost:8080/index.html');
},2000);
console.log("PID: " + child.pid);
win.on('closed',function () {
kill(child.pid);
mainWindow = null
}
)
} catch(e) {
console.log(e);
}
}
app.on('ready',createWindow)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)