Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Создание и подключение либы в Java
#1
В общем хочу создать либу, в которой будет хранится класс Print и функция print;

В общем я это хочу сделать чтоб не писать каждый раз System.out.println("блаблабла");
хочу писать print("блабла");

1) создаю класс Print
Код:
package com.lebed.lib;

public class Print{
    public static void print(Object obj){
        System.out.println(obj);
        
        }
        
    Print(){
        System.out.println("Class Print from the package com.lebed.lib is visible");
        }
    }

2) Сохраняю в d:\Projects\mylibs\com\lebed\lib\Print.java
3) В переменую среду CLASSPATH добовляю d:\Projects\mylibs
4) Создаю новый проект де пытаюсь юзать либу

Код:
package myprog.temp;
/*package myprog;
*/
import static com.lebed.lib.Print;

class Temp{
    public static void main (String[]  args){
        print("Hello world");
        Print p = new Print();
        
    }
    
}
и тут проблемы не видит класс Print.

Пытался компилить файл в Print.class, добовлял вручную и жава и класс файл к проекту, сувал компиленый класс файл в jarи добовлял к проекту, не видит все равно.
Юзаю Eclipse.
Что я не так делаю ??
Ответ
#2
[src=java]
Print.print("TEXT);
[/src]
Если ваш класс не является дочерним классом, то использовать его методы, без указания самого класса - нельзя.

P.s. Учитывая, что метод статичный new Print - делать не нужно.
Ответ
#3
Ro_0TT Написал:[src=java]
Print.print("TEXT);
[/src]

Та пытался, ругается именно на импорт класса. Я хочу сделать эту библиотеку независимую от новых проектов, шоб просто импорт прописал и все юзать на сдоровье, пример взял с философии ява.



Ro_0TT Написал:[src=java]
P.s. Учитывая, что метод статичный new Print - делать не нужно.
[/src]

я там сделал конструктор для проверки, вот и создал обьект.

Может если кто знает даст пошаговую инструкцию ? мож че не так сделал ?
Ответ
#4
Что-то странную фигню вы мутите? Вы говорите о "либе", а копируете Java Файл..
Ответ
#5
Ro_0TT Написал:Что-то странную фигню вы мутите? Вы говорите о "либе", а копируете Java Файл..

Вот, возможно... А как надо то ???


я же писал что пытался сделать так:

1) Print.java компилировал в Print.class (javac Print.java)
2)Создавал зип архив с Print.class (внутри была след иерархия папок : com/lebed/lib/Print.class)
3) Переименовывал в *.jar
4) Подключал к проекту в свойствах проекта и пытался всячески подбирать import.

Итог тот же, ругается на импорт.

В гугле не нашел мана по созданию своей библиотеке, а в приведенной мной книге вообще говорится просто про *.java файл в любой директории.
Ответ
#6
А зачем вам вообще выносить этот файл lib? У вас Print.java и те классы, с которых вы вызываете его в одном проекте?

Если да, тогда достаточно сделать импорт к Print.java и все (при условии, что он лежит в соответствии со своим пакйеджем).
Ответ
#7
да, это легко так делал, но вот просто хотел сделать как в книге, все таки я прост учусь, и в задачках бывает по 10 - 20 строчек System.out.println, Разве что каждый раз создавать метод для печати.
Ответ
#8
vetal.lebed Написал:да, это легко так делал, но вот просто хотел сделать как в книге, все таки я прост учусь, и в задачках бывает по 10 - 20 строчек System.out.println, Разве что каждый раз создавать метод для печати.

Билдите проект с Print'ом через Ant, сразу на выходе получите .jar файл.
[src=xml]
<project name="MyLIB" default="dist" basedir=".">

<property name="src" location="java"/> <!-- Замените на адресс к дериктории с сорцами. -->
<property name="build" location="build"/> <!-- Куда билдить. -->
<property name="build.class" location="${build}/class"/> <!-- Куда билдить классы. -->

<target name="compile" description="Compile the source.">

<javac destdir="${build.class}" optimize="on" debug="on" encoding="UTF-8" includeantruntime="false" nowarn="off">
<src path="${src}"/>
</javac>

<jar destfile="${build}/myLib.jar" level="0">
<fileset dir="${build.class}"/>
</jar>

</target>
</project>
[/src]

Получившуюся либо киньте куда-нибудь в проект ( не в сорцы ), и укажите путь в настройках проекта. (как именно на эклипсе это делать - я не помню).
Ответ
#9
и зачем в библиотеку пхать? проще сделать code snippet
http://stackoverflow.com/questions/23798...in-eclipse
http://www.dansshorts.com/post/creating-...in-eclipse
Ответ
#10
А простой import static java.lang.System.out чем не нравится ?
А вообще набираешь в нетбинсе sout + tab и не паришь себе мозг (или аналог в любой другой среде)
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Сервер майнкрафт 1.17 не видит Java 16 Erikvd2244 0 590 05-18-2023, 05:59 PM
Последний пост: Erikvd2244
  Требуется Java разработчик в RVR мод л2 slimak 0 2,402 03-19-2018, 11:08 PM
Последний пост: slimak
  Java Unicode Boris2105 1 2,795 08-10-2017, 02:09 AM
Последний пост: klubheads
  Java junior Tails 18 7,174 07-17-2017, 03:52 PM
Последний пост: n3k0nation
  Установить старую java ZIP 2 3,396 09-27-2016, 10:39 AM
Последний пост: Aquanox
  Учебники и книги по Java 2 CHIPSET 47 55,199 09-06-2016, 10:14 PM
Последний пост: sawayik
  Java == API == Libraries Kenrix 1 2,216 05-11-2014, 05:28 PM
Последний пост: n3k0nation
  Java 8 JavaMan 33 9,435 04-08-2014, 01:06 PM
Последний пост: SouthBridge
  Опрос от Оракла: Особенности Java EE 8 JavaMan 0 1,522 01-11-2014, 04:13 AM
Последний пост: JavaMan
  Java NB Задачи на последовательность NDWT 0 2,199 12-26-2013, 04:47 PM
Последний пост: NDWT

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)