通过Bash Shell编译和执行Java



我正在尝试编写一个将执行我的Java程序的外壳代码。我尝试了:

#!/bin/sh
COMPILECMD="javac server.jar"
RUNCMD="java -jar server.jar 12777"
$COMPILECMD
$RUNCMD

但是我有一个错误:

错误:班级名称,'server.jar',仅在注释时接受 显式请求处理1错误未能加载主级 从server.jar

清单属性

在命令行中,我不使用jar文件,我只是编译然后执行:

javac server.java 
java server 12777

典型的将Java程序构建到JAR文件中的方法是使用ant实用程序。

它的家(和文档)在这里:http://ant.apache.org/

本质上,您会在项目文件夹中编写(或使用工具来编写)build.xml,然后运行ant进行编译,Bundle等。

(免责声明:我不是蚂蚁的 fan ,但我相信,是Java宇宙中最常见/最受欢迎的工具。)


can ,如果您熟悉传统的Unix Makefiles,也可以使用传统的Unix Makefiles。一些规则,例如:

     CLASSES= Server.class Supporting.class
     %.class:   %.java
           javac $<
     %.jar:  $(CLASSES) Manifest.mf
           jar cfm $@ Manifest.mf $(CLASSES)

可以使用直接的外壳脚本:

      javac Server.java
      javac Supporting.java
      jar cfm Server.jar Manifest.mf Server.class Supporting.class

但是,如果您的项目超出了几个文件,则可以保持这一噩梦。


也有其他可用的工具,但是这些工具是我所知道的最典型的工具。

我认为您的理解错误。JAR由JAR命令而不是Javac命令创建。

jar命令创建一个jar文件(zip文件,包含内部所有类)Javac命令只编译并转换.java为.class

示例compile-command:

javac server.java; jar cvf server.jar server.class

您可能会找到以下链接帮助。http://docs.oracle.com/javase/tutorial/deployment/jar/build.html

相关内容

  • 没有找到相关文章

最新更新