[Homework] Introduction to Java August 2015

[Homework] Introduction to Java August 2015

KatyaMarincheva avatar KatyaMarincheva 572 Точки

[Homework] Introduction to Java August 2015

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

Богомил май излиезе прав, че със всичкото първоначално сетване на environment - това ще се окаже най-сложното домашно.

Ето от мен малко задачи:

Problem 3.Print Your Hometown

Problem 5.Print the Current Date and Time

Problem 6.Sum Two Numbers

Problem 7.Console-Based Compilation

Problem 8.* Sort Array of Strings

Problem 9.*** Generate a PDF by External Library

За 9-та задача гледах от тук, символите на боите накартите обаче не се display–ват в PDF-a, независимо от PDP-Viewer-a - пробвах Adobe Acrobat Pro, LibreOffice, OpenOffice, online PDF-viewer - боите на картите ги няма, ясво ще пробвам друга външна библиотека, с iText не стана.

Problem 10.JAR Archive + Console Execution

За jar файла, направих го с Eclipse:

File menu -> Export -> Java -> Runnable JAR file -> Next -> под Launch configuration От dropdown менюто си избирате двойка имена съответстващи на името на java файла о на проекта, в който той се намира; под Export destination -> Browse, избирате си папка за JAR файла, давате му име - аз написах DeckOfCardsPDF.jar -> под Library handling -> Extract required libraries into generated JAR -> Finish

Скрипта: отварям нов txt файл, пиша в него само java -jar DeckOfCardsPDF.jar

save-вам файла, сменям му екстеншъна на .bat, double click и той прави нов pdf - т.е. работи.

Тук има една особеност - локалната версия на java трябва да е 1.8 и cmd трябва да знае пътя до нея - аз се забавих много с това, защото имам инсталирана java 1.8, ъпдейтната навсякъде, но като напиша в cmd java -version - ми даваше все 1.7..... накрая открих, че в Computer -> Properties -> Advanced System Settings -> Environment Variables -> User variables for Katya -“ Path и System variables -> Path съм била имала много наблъскани paths едно след друго, част от тях сочещи към java 1.7, и затова комадата java -jar DeckOfCardsPDF.jar ми даваше грешка.

сложих: C:\Program Files\Java\jdk1.8.0_60\bin;C:\Program C:\Program Files\Java\jre1.8.0_60\bin; и в User и в System Path, изтрих всичко сочещо към java 1.7, и чак след като рестартирах лаптопа cmd откри новата java 1.8 и почна да ми рънва JAR file-a.

Problem 11.* Create a Windows EXE 

- това видео https://www.youtube.com/watch?v=6_gqWRkw0EY

ЕДИТ: за символите на боите на картите - Решено!

проблемът беше скапано times.ttf копие от интернет - затова

                        BaseFont baseFont = BaseFont.createFont("ARIAL.TTF", BaseFont.IDENTITY_H, true); с ARIAL.TTF копие от локалната fonts папка на компютъра работи,

BaseFont baseFont = BaseFont.createFont("c:/windows/fonts/times.ttf", BaseFont.IDENTITY_H, true); сочещо към локалната fonts папка на компютъра също работи; times.ttf не успях да го копирам от fonts папката, може би защото името на файла включва spaces?! Не знам.

Катя

Тагове:
5
Java Advanced 30/08/2015 22:04:48
EBojilova avatar EBojilova 330 Точки

Днес започнах да решавам това домашно но ми се появи следния проблем и от няколко часа не мога да го реша: 

Относно задачата: JAR Archive + Console Execution

Успяла съм да създада PDF файла.

После се пробвам през конзолата да компилирам с javac и ми излиза съобщение error: package com.itextpdf.text.pdf does not exist
Търсих доста къде може да ми е грешката. Въвела съм:
PATH C:\Users\Elena\Java\jre1.8.0_45\bin
CLASSPATH C:\Users\Elena\Java\jre1.8.0_45\lib
в User variables в Environment variables
рестартирала съм копмютъра и пак дава същата грешка.
Пробвах двата пата да са и в System variables, пак същото.
Използвам Windows 7 и IntelliJ.

 

0
KatyaMarincheva avatar KatyaMarincheva 572 Точки

Ели, а на кой етап си, имаш ли вече готов jar файл, който искаш да ръннеш през cmd, или искаш да създадеш jar file?

ако jar file-a ти е готов, в конзолата навигираш дo jar file-a и пишеш:

java -jar <jar-file-name>.jar

нещо такова:


C:\Users\Katya>cd IdeaProjects

C:\Users\Katya\IdeaProjects>java -jar DeckOfCardsPDF.jar

1
29/08/2015 21:49:51
EBojilova avatar EBojilova 330 Точки

Да, успява да създаде jar файл, но аз до колкото разбра преди това трябва да съм създала .class файловете, а аз не мога да стигна до там. Създавам само .class файлове, на .java файловете, които нямат third party libraries. 

В Intellij се рънва и създава pdf., но после не мога да компилирам .java до .class

и съответно дава грешка при рънването на jar- 

Microsoft Windows [Version 6.1.7601]

Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\Elena>cd IdeaProjects

C:\Users\Elena\IdeaProjects>cd 1.IntrodcutionToJava\out\artifacts

C:\Users\Elena\IdeaProjects\1.IntrodcutionToJava\out\artifacts>java -jar 1.IntrodcutionToJava.jar

Error: A JNI error has occurred, please check your installation and try again

Exception in thread "main" java.lang.NoClassDefFoundError: com/itextpd

f/text/DocumentException

        at java.lang.Class.getDeclaredMethods0(Native Method)

        at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)

        at java.lang.Class.privateGetMethodRecursive(Class.java:3048)

        at java.lang.Class.getMethod0(Class.java:3018)

        at java.lang.Class.getMethod(Class.java:1784)

        at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)

        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)

Caused by: java.lang.ClassNotFoundException: com.itextpdf.text.DocumentException

        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)

        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)

        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:33

1)

        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

        ... 7 more

C:\Users\Elena\IdeaProjects\1.IntrodcutionToJava\out\artifacts>

0
29/08/2015 22:17:40
KatyaMarincheva avatar KatyaMarincheva 572 Точки

Ако създаваш pdf имаш и клас, в папката out/ production ти е класа.

Грешката която получаваш е по-скоро защото при създаване на jar трябва да подадеш път до класа.

В IntelliJ създаването на jar го правих така:

File -> Project Structure -> Artifacts -> "+" -> JAR -> From modules with dependencies

И тук вече ти излизат две падащи менюта:

Module (тук автоматично си има избрана стойност)

Main Class (Тук browse-ваш от многоточието, и ти излиза само една опция за клас, избираш си я - вече имаш подаден клас)

Кликаш на ОК

Пак на ОК

Сега от менюто Build -> Build Artifacts -> (Action) Build

И имаш jar с клас в него.

(Що не се включиш в скайп?)

1