2015-01-24 2 views
0

Я построил .jar файл, а затем пытался запустить файл банку, и я получаю позорныйJar косяк»найти основной класс

Error: Could not find or load main class 

У меня есть вещи в дереве каталогов.
mainFolder содержит manifestFolder, содержащий мой манифест.
Также под mainFolder находится мой каталог source, который находится на паре уровней.
источника = level1.level2.mainPackage каталоги -3 уровни
главного класса находится в пакете и папках - mainPackage

манифеста содержания:

Manifest-Version: 1.0 
Ant-Version: Apache Ant 1.7.1 
Created-By: 20.1-b02 (Sun Microsystems Inc.) 
Main-Class: level1.level2.mainPackage.MainApp 
Class-Path: lib/appframework-1.0.3.jar lib/swing-worker-1.1.jar 
X-COMMENT: Main-Class will be added automatically by build 

Я строй баночки с этой командой

jar -cfmv NewTool.jar manifestFolder\MANIFEST.MF level1\level2\dynamictnd 
+2

Можем ли мы видеть ваш код для основного класса? – BitNinja

+0

@BitNinja предположим, что это «HelloWorld» - это имеет значение? – alfasin

+1

Важно: код, используемый для запуска файла jar, и, возможно, скриншот дерева каталогов (описание неясно). – tbodt

ответ

0

Вашей банкой команда неверна.

jar -cfmv NewTool.jar manifestFolder\MANIFEST.MF level1\level2\dynamictnd 

включает dynamictnd папку level2 (только). Вам нужно что-то вроде

jar -cfmv NewTool.jar manifestFolder\MANIFEST.MF level1 

чтобы получить все под level1. Наконец, просмотрите файл jar с помощью jar tvvf (или winzip) и убедитесь, что у него есть Main-Class (как указано, это невозможно, потому что ваш основной класс находится под «level1 \ level2 \ mainPackage»).

+0

Я попробовал другую команду, а затем распечатал содержимое, а основной класс находится в файле jar. Когда я ввожу jar tvvf NewJar.jar, он выводит этот тестовый проект/bin/MainTest.class. Как указать этот путь в манифесте. Замените/получите. ? – user3470688

+0

@ user3470688 Они делают, но должны соответствовать вашей фактической структуре пакета. Я думаю, вы действительно хотели «jar -cfmv NewTool.jar manifestFolder \ MANIFEST.MF» Test Project \ bin », но так как ваш пример был в пакете, я предположил, что ваш реальный код тоже. –

+0

Да, все, что мне нужно указать, чтобы заставить это работать. Я пробовал всевозможные вариации в манифесте, но не повезло. – user3470688

Смежные вопросы