[Technical Issue] Eclipse - Импорт на Java проект на друга машина
Здравейте,
Наложи се да сменя машината, на която работя и съответно проектът, разработван до момента под Уиндоус, трябва да бъде импортнат на машина, която върви под Линукс. И изведнъж се оказа невъзможно за работа.
1. Оказа се, че класът не може да си намери пътя към външната библиотека, понеже беше изтеглен някъде на другия компютър. Когато се импортне външна библиотека, тя не влиза ли някъде в самия проект?
2. Отидох на проекта, десен бутон, Build Path - Configure Build Path - Java Build Path - таб Libraries и от там смених пътя. Намери си библиотеката. Само че идва въпросът как го накараме да работи на всяка машина? Дори библиотеката да я запишем в папката на самия проект, пътят към нея ще е различен на всеки компютър.
3. В задача 9 не намира фонта. В което няма никаква логика. Задал съм да го търси по следния начин:
BaseFont font = BaseFont.createFont("TTFs/Arial.ttf",BaseFont.IDENTITY_H,BaseFont.EMBEDDED);
Самата папка и ttf файл са в папката на проекта. Тук обаче проблемът се оказа, че в Уиндоус името на файла е с главна буква, докато в Линукс е с малка. Как да го задам по такъв начин, че да работи и под двете системи?
4. Тук вече системата тотално ме хвърли в тъча:
Ето кодовете ми на задачи 5 и 6:
И на двете места ми подчертава printf и ми изписва, че методът printf(String, Oblect) не е приложим за аргумент от типа (String, LocalDateTime.Now()) съответно (String, Int). В това вече няма никаква логика. Под уиндоус програмите вървяха перфектно, сега не знам какво не им харесва, че подчертава pringf.
Благодаря ти за отговора. За съжаление разбрах много малко от него. Какъв е този classpath файл, къде се намира и как се редактира? Какво значи релативни пътища? Какво значи хардкоднати наклонени черти и файл сепаратор?
.classpath е някъде в руута на проекта ти мисля, сърчни го файл сърч.
Редактира се като текстов файл.
Релативни пътища са, когато си във /home/vhosts/myVirtualHost/ и искаш да отидеш до /home/vhosts/myVirtualHost/lib/myLib.jar да напишеш само /lib/myLib.jar. Докато /home/vhosts/myVirtualHost/lib/myLib.jar е абсолютен път, /lib/myLib.jar е релативен, т.е. такъв, който е в релация с пътя в който си в момента. Ако искаш примерно да го вземеш от предната директория, т.е. от /home/vhosts/myOtherVhosts/libs/lib.jar ще напишеш ../myOtherVhosts/libs/lib.jar (.. е директория назад).
Хардкоднати наклонени черти са просто наклонени черти, написани по начина по-горе. По принцип нормалната наклонена черта "/" важи за почти всички платформи и не би трябвало да имаш проблем с нея. Но бекслаша "\" е само за Windows. File.separator е методът separator от статичния клас File. Той проверява на каква операционна система си и съответно съобразява какъв да бъде слаша.