Я попытался поместить HelloWorld в файл .jar и запустить его, но он не работает. Я создал файл java и набрал программу, а затем написал в cmd:
javac HelloWorld.java
java HelloWorld
и это сработало. Затем я ввел
echo Main-Class: HelloWorld >manifest.txt
jar cvfm HelloWorld.jar manifest.txt HelloWorld.class
и получил выход
added manifest
adding: HelloWorld.class(in = 426) (out= 288)(deflated 32%)
Затем я ввел
java -jar HelloWorld.jar
HelloWorld.jar
и первая строка работала, а вторая строка дала мне ошибку:
Error: Could not find or load main class path\HelloWorld.jar
который является тем же результатом, который я получил (в быстро закрывающемся окне), когда я попытался открыть его с файлом java.exe в 64-разрядном файле jre7\bin, jdk1.7.0_51\bin, jdk1.7.0_51\jre\bin, а также 32 бит jre7\bin. Я удалил и переустановил оба моих jre и jdk и воссоздал файлы .class и .jar, но проблема не устранена. Я нахожусь на win8.
Редактировать: Я пытался сделать то, что предложил Эферия, но не повезло. Я поместил HelloWorld.java в путь \com\stackoverflow\user\blrp, скомпилировал его, и он работал, введя
java com.stackoverflow.user.blrp.HelloWorld
в пути. Затем я создал манифест и jar:
(echo Manifest-Version: 1.0
echo Class-Path: .
echo Main-Class: com.stackoverflow.user.blrp.HelloWorld) >manifest.txt
jar cvfm HelloWorld.jar manifest.txt com\stackoverflow\user\blrp\HelloWorld.class
и получил выход
added manifest
adding: com/stackoverflow/user/blrp/HelloWorld.class(in = 454) (out= 312)(deflat
ed 31%)
но все же, java -jar HelloWorld.jar работал, и HelloWorld.jar не сделал (такая же ошибка). Я также старался не делать вещи пакета, просто манифест класса-класса, тот же результат.
(Кроме того, я решил проблему до того, как задал вопрос, используя файл .bat, но все равно было бы приятно, если бы эта работа работала.)