无法为linux创建javafx应用程序.deb包

Bra*_*dey 1 javafx

[fx:deploy] java.io.IOException: Cannot run program "fakeroot" (in directory "/tmp/fxbundler2581933641178636333/images/linux-deb.image"): error=2, No such file or directory
[fx:deploy]     at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
[fx:deploy]     at com.oracle.tools.packager.IOUtils.exec(IOUtils.java:146)
[fx:deploy]     at com.oracle.tools.packager.IOUtils.exec(IOUtils.java:138)
[fx:deploy]     at com.oracle.tools.packager.IOUtils.exec(IOUtils.java:132)
[fx:deploy]     at com.oracle.tools.packager.linux.LinuxDebBundler.buildDeb(LinuxDebBundler.java:846)
[fx:deploy]     at com.oracle.tools.packager.linux.LinuxDebBundler.bundle(LinuxDebBundler.java:352)
[fx:deploy]     at com.oracle.tools.packager.linux.LinuxDebBundler.execute(LinuxDebBundler.java:898)
[fx:deploy]     at com.sun.javafx.tools.packager.PackagerLib.generateNativeBundles(PackagerLib.java:506)
[fx:deploy]     at com.sun.javafx.tools.packager.PackagerLib.generateDeploymentPackages(PackagerLib.java:471)
[fx:deploy]     at com.sun.javafx.tools.ant.DeployFXTask.execute(DeployFXTask.java:285)
[fx:deploy]     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
[fx:deploy]     at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
[fx:deploy]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[fx:deploy]     at java.lang.reflect.Method.invoke(Method.java:497)
[fx:deploy]     at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
[fx:deploy]     at org.apache.tools.ant.Task.perform(Task.java:348)
[fx:deploy]     at org.apache.tools.ant.Target.execute(Target.java:435)
[fx:deploy]     at org.apache.tools.ant.Target.performTasks(Target.java:456)
[fx:deploy]     at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
[fx:deploy]     at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
[fx:deploy]     at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[fx:deploy]     at org.eclipse.ant.internal.launching.remote.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:36)
[fx:deploy]     at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
[fx:deploy]     at org.eclipse.ant.internal.launching.remote.InternalAntRunner.run(InternalAntRunner.java:452)
[fx:deploy]     at org.eclipse.ant.internal.launching.remote.InternalAntRunner.main(InternalAntRunner.java:139)
[fx:deploy] Caused by: java.io.IOException: error=2, No such file or directory
[fx:deploy]     at java.lang.UNIXProcess.forkAndExec(Native Method)
[fx:deploy]     at java.lang.UNIXProcess.<init>(UNIXProcess.java:248)
[fx:deploy]     at java.lang.ProcessImpl.start(ProcessImpl.java:134)
[fx:deploy]     at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
[fx:deploy]     ... 24 more

BUILD FAILED
/home/india/Desktop/ReadEdge/build/build.xml:208: Error: Bundler "DEB Installer" (deb) failed to produce a bundle.

Total time: 54 seconds
Run Code Online (Sandbox Code Playgroud)

小智 11

错误信息在其"没有这样的文件或目录"的说法中有点误导,因此,乍一看,听起来好像tmp目录中缺少某些东西.

实际抱怨的是fakeroot你的系统上没有安装的事实.假设你正在建立一个类似ubuntu的系统,这应该让你解决:

sudo apt-get install fakeroot
Run Code Online (Sandbox Code Playgroud)

fakeroot对我来说是一个新的.此链接说明了您需要它的原因.


Emm*_*ows 5

只是为了添加到jonnyp的答案,fakeroot因为我在尝试打包Scala Play应用程序时遇到了与OP相同的问题.

在Mac OS上,您可以fakeroot使用Homebrew 进行安装:

brew install fakeroot
Run Code Online (Sandbox Code Playgroud)

要在我的Mac上创建Debian软件包,我还需要使用安装Debian软件包管理模块brew install dpkg.如果这是他们遇到的第一页,可能会为某人搜索!