在 ubuntu 中运行 jar 文件时出现问题

在 ubuntu 中运行 jar 文件时出现问题

为什么.jar当我像这样运行脚本时,它会运行 java -jar myfile.jar,但当我像这样执行它时它不会运行 ./myfile.jar

答案1

当您使用 运行 jar 时,java -jar myfile.jar您是在告诉 shell 运行java命令并向其传递一些可以java理解的参数。但是,当您使用 运行它时,./myfile.jar您是在要求 shell 确定要与哪个中断器一起运行它,而这是它无法做到的。

shell 会在脚本开头查找 shebang 行,以了解使用哪个应用程序运行该脚本,这就是为什么你会看到以以下内容开头的 shell 脚本:

#!/bin/bash

或者 Python 脚本以以下代码开头

#!/usr/bin/python

基本上,您要告诉 shell 使用在/bin/bash或 处找到的应用程序运行脚本/usr/bin/python。对于 jar 文件,shell 无法找到 shebang,因此它不知道如何执行代码。

过去我曾使用包装脚本来执行 Java 应用程序,因此类似于:

#!/bin/bash

java -jar /path/to/myfile.jar

然后你只需要使它可执行,然后chmod就可以像运行任何其他 shell 脚本一样运行它。

答案2

我已经使用 sudo apt-get install openjdk-7-jdk 安装了 jdk,并使用 sudo apt-get install openjdk-7-jre 安装了 jre,但仍然遇到此问题。我认为这可能是由于我的系统无法找到 java 路径。最后,当我使用以下命令安装 oracle jdk7 安装程序时,我能够使用 ./myfile.jar 命令运行 .jar 文件。我使用以下命令进行安装:

sudo 添加 apt-repository ppa:webupd8team/java

sudo apt-get 更新

sudo apt-get 安装 oracle-jdk7-installer

相关内容