Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

zarkoNGU avatar zarkoNGU 21 Точки

Problem 10: JAR Archive + Console Execution

Здравейте колеги.
Забелязвам, че явно всички с лекота сте разбрали условието на задачата и сте се справили, защото никой не коментира. Ще помоля някой да ми обясни какви са стъпките за решаване на проблема.
1-во Трябва да създам архив JAR на цялата папка с решенията на задачите ми нали? Или архив само на един от java файловете в src папката, с който да реша Problem 10 ?
2-ро създадох script като преименувах текстов документ run.sh 
3-то задам път към JAR архива с командата java -jar "/home/developer/workspace/Intro-Java.Homework.jar" ? При което ако стартирам скрипта през терминала ми показва " Error: Unable to access jarfile "

Благодаря

Тагове:
4
Java Advanced
RoYaL avatar RoYaL Trainer 6849 Точки

Джар файла ти трябва да е Executable.

1
zarkoNGU avatar zarkoNGU 21 Точки
Потърсих и изпробвах много варианти в нета,но не мога да се оправя. Пробвах с: javac HelloWorld.java echo Main-Class: HelloWorld > MANIFEST.MF jar -cvmf MANIFEST.MF helloworld.jar HelloWorld.class като прави манифест файл,но не и jar файл. Изпробвах и по този начин, но не спря да ми изписва Is a directory: Navigate to the folder that holds your class files: C:\>cd \mywork Set path to include JDK’s bin. For example: C:\mywork> path c:\Program Files\Java\jdk1.7.0_25\bin;%path% Compile your class(es): C:\mywork> javac *.java Create a manifest file and your jar file: C:\mywork> echo Main-Class: Craps >manifest.txt C:\mywork> jar cvfm Craps.jar manifest.txt *.class or C:\mywork> jar cvfe Craps.jar Craps *.class Test your jar: C:\mywork> Craps.jar or C:\mywork> java -jar Craps.jar Ще съм ти благодарен ако дадеш някакъв съвет, не ги чаткам много тия пътеки и компилации с конзолата
0
RoYaL avatar RoYaL Trainer 6849 Точки

Правиш първо джара ип осле можеш да пуснеш манифеста в него :) Но, както е казал колегата по-долу пробвай през Еклипса.

0
ttitto avatar ttitto 1153 Точки

Тук с колегата се чудихме по тази задача. И на мен ми се иска някой да помогне за генерирането на jar файл с подходящ манифест!

0
selfx avatar selfx 1 Точки

при мен линкът "Тук" не работи - "Страницата не е намерена"

0
ttitto avatar ttitto 1153 Точки

Ами и аз не можах да намеря темата, към която съм дал линк. Явно някой е почиствал или я е преместил. опитвахме се да генерираме през конзолата jar-файл, но не успяхме да го направим по различни причини.

0
petar.petrov avatar petar.petrov 37 Точки

Здравейте колеги, 

Забелязах, че има начин всичко по задачата, да бъде направено с помощта на Eclipse.

01. В панела на Package Explorer, маркираме '.java' файла, т.е. DeckOfCards.java  

02. От File menu избираме Export

03. От дървото избираме Java и Runnable JAR File,  Next ...

04. От полето Launch Configuration избираме отново нашият  java file

      --> DeckOfCards-01-Intro-Java-Homework

05. В полето Export destination браузваме и даваме име на jar архивът: 

      ...01-Intro-Java-Homework/src/myJar.jar

06. За Library Handling, мисля, че трябва да изберем първата опция:

      Extract required libraries into generated JAR

     Finish ...

 Сега в  Package Explorer може да видим нашият myJar.jar 

EDIT:

За създаването на скриптовият файл, моля погледнете по-надолу в постовете на a.angelov и Karlie

Избрах да пробвам този начин, тъй като с ръчният през конзолата забих до манифеста в скрипта.

Ако греша някъде, ме извинете и поправете :)  

12
zarkoNGU avatar zarkoNGU 21 Точки

А защо дава ерори като се стартира скрипта с терминала ? Така ли трябва да бъде ?

1
petar.petrov avatar petar.petrov 37 Точки

... в момента и аз се опитвам да открия причината за грешките при стартиране.

направих скрипта да е executable и стартирах скрипта, но показва грешките

 

  

1
a.angelov avatar a.angelov 1316 Точки

Аз го направих по следният начин под Ubuntu:

1. В Еклипс – кликвате с десен бутон на мишката върху проекта и избирате Експорт;

2. Избирате Java – Runnable JAR file;

3. В Launch Configuration избирате съответния клас, който искате да се стартира. Посочвате папка и име на jar файла, който ще се създаде и маркирате – Export required libraries into generated JAR. След това натискате Finish и потвърждавате при следващите диалогови прозорци /ако ви излязат такива/:

4. Тъй като Еклипс не експортва фонта, който използвам, се налага фонта да се добави ръчно в генерирания JAR файл с команда през терминала:

jar uf cards.jar DejaVuSansMono.ttf

 

5. Манифест файла не съм коригирал, автоматично генерирания от Еклипс е със следните Class-Path и Main-Class:

Manifest-Version: 1.0

Class-Path: .

Main-Class: GeneratePDFbyExternalLibrary

 

6. Скриптовият файл е със следните команди:

#!/bin/bash

java -jar cards.jar

 

7. Стартиране на скриптовият файл от терминала /сега видях, че не съм го именувал run.sh както е в условието/:

sh cards.sh

 

Принципно работи и генерира pdf файл, но не знам дали не трябва да се направи още нещо по отношение на условието на задачата - 

You should include in the classpath the JAR holding your code as well as the JARs holding the external libraries that your code uses.

Ще се радвам някой да коментира ако е необходимо да се направи още нещо или допускам някакви грешки.

8
zarkoNGU avatar zarkoNGU 21 Точки

Благодаря много добре написано и обяснено , обаче като изпълня всички точки и стигам до 6-та, но вместо в скриптов файл се пробвам да отворя програмата през конзолата ми изписва: " Exception in thread "main" java.lang.UnsupportedClassVersionError: SortArrayOfStrings : Unsupported major.minor version 52.0 "

А пък ако се опитам да отворя jar файла с програмата, която конзолата ми искаше да изтегля, когато се опитах да отворя файла ( OpenJDK Java 7 Runtime ) ми изписва: " The file '/home/developer/workspace/homework/homework.jar' is not marked as executable.  If this was downloaded or copied from an untrusted source, it may be dangerous to run.  For more details, read about the executable bit. "

Проверих в нета и пише, че ексепшъна го дава, защото съм направил кода с JDK 8 , а го отварям с JDK 7 , но търсех и не намерех в нета OpenJDK Java 8 Runtime . Това значи ли, е трябва да правим проектите на JDK 7 или аз нещо бъркам ?

0
selfx avatar selfx 1 Точки

Много Благодаря! Най-после едно работещо решение за тази "задължителна задачка" (...а трябва да си рещил задача с три звезди "за шампиони" преди тази) Аз добавих шрифта през Archive Manager-а с Add Files бутона, а не през конзолата.

Относно условието - и на мен не ми е мътно ... ще се радвам автора на задачата да поясни, какво точно иска и как да стане това

@зарко - и при мен неработи, като отварям jar-а през конзолата или директно с клик

(ползвам Ubuntu14.04, Java8 и Eclipse Kepler)

0
Karlie avatar Karlie 438 Точки

Редактирам си поста, с надеждата да помогна на всички съвсем начинаещи и неориентирани като мен с малко уточняваща информация към решението на а.ангелов. Към точка 3. - въпреки, че избираме опредeлен клас в Launch Configuration, всички класове от package-а влизат в jar-a и явно това е нормално. Към точка 6. Скриптовият файл се създава така: правите си нов текстови файл (например в Notepad) и в него пишете командите, които колегата е дал, а именно:

#!/bin/bash

java -jar cards.jar (вместо cards.jar слагате името на вашия jar файл). Преименувате така създаденият .txt файл на run.sh, ако ще го пускате под Линукс или run.cmd за Уиндоус.

5
GoShow avatar GoShow 595 Точки
Ето моят начин да се справя с гадината :). Десен бутон на проекта -> Export -> Java -> Runnable JAR file.След това, обаче по някаква причина файла с шрифта times.ttf не влизаше в JAR-a. Опитах какви ли не врътки и най-накрая намерих в нета следната команда.Двата файла трябва да са в една директория, отварям CMD и пиша следното: jar uf jar-file input-file(s) В моя случай: jar uf deckOfCards.jar input times.ttf И най накрая след големи мъки заработи!После от него си направих и exe-то, което също работи с launch4j има една малка врътка,че трябва да зададете минималната версия на JRE, аз лично писах 1.7.0. Дано съм бил от полза!
3
vitaliti avatar vitaliti 35 Точки

Правя exe,script и jar file,но прграмата тръгва само от scripta.

Така ли трябва де е ?

Нито от exe-to,нито от консолата не тръгва програмата.

0
martin_varbanov avatar martin_varbanov 1 Точки

Аз си направих jar файловете чрез Netbeans средата. Работи без никакви проблеми :]

 

https://www.youtube.com/watch?v=1l1KExPKjWE

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.