0

我使用 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 文件如下所示:

在此处输入图像描述 在此处输入图像描述

4

1 回答 1

1

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

java -jar xxx.jar

man java阅读-jar选项部分。

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

man jar,然后查看e选项。

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

Manifest-Version: 1.0
Created-By: 1.6.0 (or maven, ant, blahblah)
Main-Class: com.yourpackage.MainClass
于 2013-02-04T00:41:56.403 回答