【发布时间】:2014-02-19 06:07:31
【问题描述】:
我正在尝试编写一个 shell 代码来执行我的 Java 程序。我试过这个:
#!/bin/sh
COMPILECMD="javac server.jar"
RUNCMD="java -jar server.jar 12777"
$COMPILECMD
$RUNCMD
但是我收到了这个错误:
错误:类名“server.jar”仅在注释时才被接受 显式请求处理 1 错误加载主类失败 server.jar 中的 manifest 属性
在命令行中我不使用jar文件,我只是编译然后执行:
javac server.java
java server 12777
【问题讨论】:
-
javac将 Java 源文件编译为类文件 - 它不会创建 Jar。为此,您还需要使用jar命令(并配置主类是什么,以便它可以创建适当的清单)。但是,您可能想考虑使用ant或maven来执行类文件的编译和 jarring。 -
既然你知道命令行的工作原理,你为什么要在 shell 脚本中做一些不同的事情呢?正如 Greg 所说,如果您想构建一个 jarfile,您可以这样做,但您需要使用正确的命令序列来执行此操作,并且如果您希望
server成为您需要的 jar 的默认main()类还要创建一个清单文件。 -
offtopic 评论,但"shell code" 有不同的含义。 :-) 您在此处编写的内容通常称为“shell 脚本”或“shell 程序”,尽管术语并没有那么明显。