运行Jar文件不起作用。找不到Main

时间:2013-02-04 00:25:43

标签: java batch-file jar

我使用netbeans为学校创建我的java项目。我不喜欢netbeans如何使用内部控制台而不是通常的黑色CMD / Windows /终端控制台,所以我决定使用批处理文件通过命令行编译我的项目。我的批处理文件拒绝运行jar。它说主要类没有找到。我无法弄清楚原因:S

有人可以帮助我或告诉我如何解决它吗?

我相信所需的所有信息都在下面:

@echo off

set ProjectName=WildWidgetsWarehouse.jar
set ProjectPath=C:/Users/Brandon/Documents/NetBeansProjects/

set path=C:/Program Files/Java/jdk1.7.0_11/bin


cd /d %~dp0
ECHO.
dir %ProjectPath%/*.java
ECHO.
ECHO.

for %%* in (.) do set FolderName=%%~n*
for %%* in (..) do set ParentDirectory=%%~dpnx*

javac -d ../Classes *.java -cp ../Classes;std.jar

cd %ParentDirectory%\Classes
jar cvf %UserProfile%\Desktop\%ProjectName% %FolderName% .*
java -cp . %UserProfile%\Desktop\%ProjectName%

PAUSE

运行时,会打印:

Invalid switch - "Users".

Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
.* : no such file or directory

Prints all the file it added.. It adds all my classes.. See picture below

Error: Could not find or load main class C:\Users\Brandon\Desktop\WildWidgetsWar
ehouse.jar
Press any key to continue . . .

我的Jar文件看起来像:

enter image description here enter image description here

1 个答案:

答案 0 :(得分:1)

要运行jar文件,您需要-jar选项

java -jar xxx.jar

man java,阅读-jar选项部分。

您也可以将主类信息添加到jar文件的清单中。

man jar,并查看e选项。

你的jar的MANIFEST.MF应该看起来像(只是示例)

Manifest-Version: 1.0
Created-By: 1.6.0 (or maven, ant, blahblah)
Main-Class: com.yourpackage.MainClass