我使用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文件看起来像:
答案 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