如何转换文件。 .java 或者 .jar 在可执行文件中 Linux / 没有扩张 .jar, 这意味着这不是文件 .jar /

我正在寻找关于它的许多类似的消息,但我仍然找不到我的答案。 我想转换该程序 .java 在可执行文件中 Linux 没有扩张 .jar. 我怎样才能做到这一点? 我正在尝试使用shell Launch4j java, JWrapper, IzPack, 去做 .sh, 去做 .bat, 使用它使用 java -jar myFile.jar 等等,但他们都没有工作。 有些程序很复杂,难以调试。 是否有任何简单的方法来转换文件 .java 或者 .jar 在可执行文件中 Linux?

我需要将此程序转移为可执行文件 Linux 一般来说,另一个接受该程序作为参数的程序。
已邀请:

莫问

赞同来自:

假设你有一个推出的 jar 名称 helloworld.jar

复制以下脚本 Bash 到命名的文件 stub.sh


#!/bin/sh
MYSELF=`which "$0" 2>/dev/null`
[ $? -gt 0 -a -f "$0" ] && MYSELF="./$0"
java=java
if test -n "$JAVA_HOME"; then
java="$JAVA_HOME/bin/java"
fi
java_args=-Xmx1g
exec "$java" $java_args -jar $MYSELF "$@"
exit 1


然后添加文件 jar 到保存的方案并提供许可 execute 使用以下命令获取的文件:


cat stub.sh helloworld.jar > helloworld.run && chmod +x helloworld.run


就这样!

现在您可以运行应用程序,只需键入 helloworld.run 在你的 shell terminal.

该脚本足以透明地将任何命令行参数传输到应用程序 Java.

Titres:Paolo di Tommazo

来源:
https://coderwall.com/p/ssuaxa ... table

帅驴

赞同来自:

我找到了一个解决方案,在几个小时的搜索和尝试后确切地说。 它是使用

团队

支持B. linux.

它有用 gcc 为了 C 和 g++ 为了 C++, 哪个编译程序 C 或者 C++ 在可执行文件中。

首先安装 gcj 通过 terminal, 得分:


sudo apt-get install gcj-jdk


在那之后 cd 在文件所在的目录中 .jar, 说,文件 .jar - 这是 myFile.jar, 然后做:


gcj myFile.jar -o newNameofTheFile --main=theMainClassNameofTheFile


编译文件 .jar. 他应该用作一个可执行文件,只需在这样的命令行上运行它:


./newNameofTheFile

小明明

赞同来自:

您可以做的是制作一个小小的C程序,导致其中一个功能 exec /厘米。 man 3 exec/ 在二进制文件中 "java", 转移 "-jar", " xxx.jar " 作为论点,另见
https://coderoad.ru/5270083/
.jar

君笑尘

赞同来自:

转换的另一个简单技巧 jar 在可执行文件中 Linux - 它只是放了 shebang 在文件前面 jar.

假设我们有一个文件 hello.jar.


$ java -jar hello.jar
hello world!


您可以按以下步骤创建可执行文件。


$ echo "#! /usr/bin/env java -jar" > hello
$ cat hello.jar >> hello
$ chmod +x hello


然后你可以执行文件 hello 直接地。


$ ./hello
hello world!

要回复问题请先登录注册