Java package import jar

Импорт метода/класса из jar файла

Создал test.jar файл проекта. Поместил его в папку libs другого, но не пойму как импортировать классы/методы из этого test.jar. Подскажите пожалуйста, как организовать импорт. Пытаюсь импортировать следующие классы

import com.JSONelements.JSONBaseElement; import com.parseJSON.BaseParser; import com.workWithFile.ReadFromFile; 3 класса(я написал с указанием пакетов) 

Jar собирал без использовании системы сборки, просто прописал .bat и запустил его, jar файл успешно создался

D: cd D:\workspace\JSONParser jar cf parseJSON.jar classFoulder/* src/* pause 

Вообще использую Eclipse, но похоже он не видит классы. Хочу научиться и с помощью Екслипса(без сборщиков) и с помощью командной строки это проделывать. Но статей толковых нет. Написал это в главном классе нового проекта, но импорт не работает:

package com.json; import com.JSONelements.JSONBaseElement; import com.parseJSON.BaseParser; import com.workWithFile.ReadFromFile; public class TestJSON < public static void main(String[] args) < String jsonString = ReadFromFile.readFile("d:/json1.txt"); System.out.println("Formated from file: " + jsonString); JSONBaseElement parserJson = BaseParser.mainParse(jsonString); System.out.println(parserJson); >> 

Если Вы включите в вопрос пример класса из test.jar , который нужно импортировать, то можно будет дать ответ с реальными примерами.

2 ответа 2

В импортируемом .jar файле (созданной вами библиотеке) должен точно быть указан package , первой строчкой в каждом вашем классе.

Затем, если вы компилируете проект напрямую консольными командами, желаемый .jar файл необходимо добавить в classpath проекта, который будет использовать нужную библиотеку.

javac -cp "/путь/до/библиотеки.jar" Проект.jar 

Тогда в проекте «проект.jar» можно будет использовать библиотеку.

введите сюда описание изображения

Если вы используете среду разработки IntelliJ IDEA, тогда нужно сделать следующее:
зайти в Project Structure. | Libraries, нажать + и добавить нужную библиотеку в список библиотек:

Это делается для того, чтобы вы могли указать import com.ваш.пэкейдж.ИмяКласса; в проекте, и при компиляции проект знал, откуда импортировать нужные классы.

С системами сборки всё гораздо проще: если нужная библиотека есть в каком-нибудь из публичных репозиториев, например в Maven Central , то достаточно будет указать всего несколько строчек в конфигурационном файле.

Пример для maven: нужно добавить строчки ниже в файл pom.xml:

group.id.библиотеки имя-библиотеки версия

Для gradle: добавить строчки ниже в build.gradle:

Источник

How do I import JARs and Packages in Java

Some questions: 1) Do i still need to import org.apache.log4j.Logger? 2) If so, what determines the FQDN of the package? 3) Do I need to be in a specific directory in order to run javac? Currently i’m going into the source directory of Project1 (the java/bin is in my PATH already)

Sorry for these silly questions. I’ve trawled through so many websites but many do not cover the very basics. I hope this makes sense.

3 Answers 3

Do i still need to import org.apache.log4j.Logger?

Yes you always need to use import directives any class you want to use. Java won’t load anything even if it is on the classpath unless you tell it to.

If so, what determines the FQDN of the package?

Inside the jar, the .class files are located in subdirectories like this: org/apache/log4j . etc. This is how the FQDN is determined and it is used basically as a namespace construct so you can have two or more classes of the same name — which is also why Java can’t load everything on the classpath. If it did, it would have no way to disambiguate and work out which class you wanted.

Do I need to be in a specific directory in order to run javac ?

No. You can run this from anywhere provided the classpath, from whereever you are, can get to your dependencies. It could be a relative classpath if specified on the command line or absolute if in an environment variable. Likewise you don’t need to be in a specific directory to use java but you do need it to be able to get to the correct location.

Источник

Java code to import JAR file

I created a JAR file and then added it to my project’s build path. Now how do I import it to my class so I can use it? I’ve only tried import java-class.jar; so far.

4 Answers 4

You import classes, not jar files, in your Java source code.

Lets assume you have someJar.jar which contains class definitions for 3 classes, FirstClass.class , SecondClass.class and ThirdClass.class , all of which are in package org.somepackage .

Given the above, you would add

import org.somepackage.FirstClass 

at the top of a source file to import the class called FirstClass .

To do this, you need to add it to the classpath when compiling and running, like

java -cp myJar.jar a.b.myMainClass

Once the jar is on the execution class path, you import them normally :

import the.package.and.name.of.TheClass; 

This is because the Java virtual machine has the concept of a «class path». This class path is filled with all files (classes and resources) found in jar files and folders placed on the classpath.

For example, if you have two jar and one folder :

A.jar com/ mycompany/ A.class Another.class B.jar com/ mycompany/ B.class neededImage.gif bin-folder/ org/ apache/ Something.class 

From the JVM POV you have the sum of all these folders, as if they were in a single folder.

So you can freely import whatever class you need, specifying the fully qualified name, independently if it is inside a jar or in your project bin folder.

In fact jars are nothing more than zip files of folders, containing compiled classes (and eventually other resources).

The class path is declared to the JVM when running a program, using the «-cp» command line switch. For example, for the previous 2 jars and one folder, on windows, you would write :

java -cp A.jar;B.jar;bin-folder your.main.class.Here 

Источник

How to import packages in java [duplicate]

I am new in Java programming language and i want to use a library by importing their packages . Can anyone tell me how can i import packages in Java using text editor? I found this library in github and i wanted to use their packages for my java code i am developing by using import. I tried just to call these packages on my code by using import but in compiler there was an error which states: packages not found.

import com.tiemens.secretshare.main.cli.*; import com.tiemens.secretshare.main.cli.*; import java.io.*; import java.math.BigInteger; import java.nio.file.Files; import java.nio.file.Paths; import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; import static java.lang.Integer.min; import static java.util.Arrays.copyOfRange; public class Shamir < //The encoding that will be used when splitting and combining files. static String encoding = "ISO-8859-1"; //The number of bytes per piece (except maybe the last one)! static int pieceSize = 128; //Mode 0 for strings, 1 for ints. public static ArrayListshamirSplit(String inputString, int numPieces, int minPieces, int mode) < String type = "-sS"; if (mode == 1) < type = "-sN"; >ArrayList parts = new ArrayList<>(); String[] splitArgs = ; MainSplit.SplitInput splitInput = MainSplit.SplitInput.parse(splitArgs); MainSplit.SplitOutput splitOutput = splitInput.output(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); PrintStream ps = new PrintStream(baos); splitOutput.print(ps); String content = baos.toString(); // e.g. ISO-8859-1 BufferedReader reader = new BufferedReader(new StringReader(content)); String line; int i = 0; try < while ((line = reader.readLine()) != null && i < numPieces) < if (line.startsWith("Share (x")) < i++; parts.add(line.trim()); >> > catch (Exception e) 

So my class i want to implement is Shamir class but i need to import com.tiemens.secretshare.main.cli.*; Can anyone tell me how to make this package work for my Shamir class?

Источник

Читайте также:  Php class name in function parameter
Оцените статью