我编写了一个用jxl.jar读取excel文件的java程序。它目前正在运行,但我必须使用cmd来运行该程序。双击jar文件似乎不起作用。这些是我用来编译和运行代码的命令:
javac -classpath C:/workspace/jxl.jar:. main.java GUi.java
jar cvfm run.jar manifest.txt Main.class GUI.class GUI$1.class GUI$2.class GUI$3.class Main$1MyCustomTableCellRenderer.class Main$1YourTableCellRenderer.class Main$MyCustomTableCellRenderer.class
java -cp run.jar Main
我不确定为什么与双击它有什么不同。我已经将jxl文件编译到run.jar文件中,所以我不明白为什么它不起作用?
答案 0 :(得分:1)
示例直接来自Adding Classes to the JAR File's Classpath上的 Java Tutorial ,正如@MadProgrammer在评论中所建议的那样。
我们希望将MyUtils.jar
中的类加载到类路径中,以便在MyJar.jar
中使用。这两个JAR文件位于同一目录中。
我们首先创建一个名为Manifest.txt
的文本文件,其中包含以下内容:
Class-Path: MyUtils.jar
警告:文本文件必须以新行或回车符结束。如果最后一行没有以新行或回车结束,则不会正确解析。
然后我们通过输入以下命令创建名为MyJar.jar
的JAR文件:
jar cfm MyJar.jar Manifest.txt MyPackage/*.class
这将创建一个带有以下内容的清单的JAR文件:
Manifest-Version: 1.0
Class-Path: MyUtils.jar
Created-By: 1.7.0_06 (Oracle Corporation)
当您运行MyUtils.jar
时,MyJar.jar
中的类现已加载到类路径中。
答案 1 :(得分:0)
在命令提示符下尝试:
如果将jar与所有库捆绑在一起,请运行以下命令
java -jar MyJar.jar
如果您需要在执行时添加jar,请在命令行添加所有jar,如下所示;
java -cp /path/jxl.jar;myJar.jar Class-Name-Main