我正在尝试编写一个将执行我的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