[Homework] Introduction to Java August 2015
Здравейте колеги,
Богомил май излиезе прав, че със всичкото първоначално сетване на environment - това ще се окаже най-сложното домашно.
Ето от мен малко задачи:
Problem 5.Print the Current Date and Time
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?! Не знам.
Катя
Ели, а на кой етап си, имаш ли вече готов jar файл, който искаш да ръннеш през cmd, или искаш да създадеш jar file?
ако jar file-a ти е готов, в конзолата навигираш дo jar file-a и пишеш:
нещо такова:
C:\Users\Katya>cd IdeaProjects
C:\Users\Katya\IdeaProjects>java -jar DeckOfCardsPDF.jar
Да, успява да създаде 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>
Ако създаваш 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 с клас в него.
(Що не се включиш в скайп?)