I want to unzip a folder in Java using "util-compress" maven dependency . After adding the dependency to the pom, how to use it in java program. Can someone explain please ? I'm new to this field . Any proper tutorial guidance is welcomed.
Thanks in advance.
https://mvnrepository.com/artifact/io.vertx/mod-unzip/1.0.0-final
Java comes with “java.util.zip” library to perform data compression in ZIp format. The overall concept is quite straightforward.
Read file with “FileInputStream”Add the file name to “ZipEntry” and output it to “ZipOutputStream“
Below link may help to u
https://www.mkyong.com/java/how-to-compress-files-in-zip-format/
I hope you are using below dependency.
<dependency> <groupId>com.madgag</groupId> <artifactId>util-compress</artifactId> <version>1.33</version> </dependency>
This dependency internally deals with below dependencies
<dependencies>
<dependency>
<groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.4</version>
<scope>test</scope>
</dependency>
<dependency> <groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.0</version>
</dependency>
</dependencies/>
So you can find examples in below link
https://commons.apache.org/proper/commons-compress/examples.html
Related
I'm trying to use PMML4S to make predictions from an imported model from sklearn. I have the model in an xml file that I am trying to load into java using pmml4s. I am trying to follow this. However, I am having issues getting it to work: specifically, "Package 'org.pmml4s.model' is declared in module with an invalid name ('pmml4s.2.10')" . I am using IntelliJ as my IDE. Please let me know if I can provide other information/code. Any help is appreciated!
Error is here:
import org.pmml4s.model.Model;
Dependencies:
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>18.0.2</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>18.0.2</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.pmml4s</groupId>
<artifactId>pmml4s_2.10</artifactId>
<version>0.9.16</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.36</version>
</dependency>
<dependency>
<groupId>com.example</groupId>
<artifactId>doctor</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>3.6.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>1.9</version>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
<version>6.0.0</version>
</dependency>
</dependencies>
You used java 9 modules in your project and imported a library which was not converted to java 9 modules. Thus Java treats this library as an automatic module and derives module name from jar name. The jar name happens to be illegal.
See:
What is an automatic module?
You have 2 options:
Option 1: Dont use java9 modules
See:
Is there any need to switch to modules when migrating to Java 9 or later?
Option 2: Sanitize jar name
See:
Unable to derive module descriptor for auto generated module names in Java 9?
Scala Suffix Maven plugin looks like a tool designed precisely to solve your problem
Note that you need to require the automatic module in this approach:
How to use 3rd party library in Java9 module?
I am building a java program that opens an excel document. While in the IDE everything works, when i execute the code from the built jar everything falls apart and it gives me the following exception
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/EncryptedDocumentException
at com.exceltogpx.Main.main(Main.java:19)
It stops the execution at the import of the class
import org.apache.poi.EncryptedDocumentException;
and it's driving me crazy
it's a maven build, dependencies imports following
<dependencies>
<!-- https://mvnrepository.com/artifact/org.json/json -->
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20210307</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.0.0</version>
</dependency>
</dependencies>
I think something may be wrong with either the classpath or the way I create the build with maven, but it seems I can't find the issue itself
Found out the answer to the question
I am a newbie maven user and I had never worked with pom a before. Be sure to specify a goal for your project and to specify that it will be a "jar-with-dependencies"
Here's the guide I used to fix my pom file (I followed the second part of the guide, the one that uses Apache maven assembly plugin)
Other suggestions for others using maven for the first time. If you used any external libraries so you have dependencies, in the log you should see the download of those libs. Otherwise it means you probably did something wrong with the pom... The guide I linked works pretty good and explains what the main tags do.
I am using Apache commons-configuration2 in one of my projects. Recently, I decided to let Maven manage my projects. Which works fine, except for commons-configuration2; I am not able to find that dependency on the Maven repo. Even when looking just for commons-configuration, not commons-configuration2, none of the results I am getting are org.apache.commons.
What am I doing wrong?
That's because, version 1.x of the artifact commons-configuration was really under the commons-configuration group. You can find the latest release version, 1.10, of that artifact in the repo.
It was only after it became commons-configuration2 (technically an entirely different Maven artifact of the same project), it was grouped under org.apache.commons. You don't see them in the maven repo (the RELEASE repo that is) probably because it's still a SNAPSHOT. You can still find the artifact in the SNAPSHOT repo.
See the project summary and release history for more information.
Current workaround solution:
Download Apache Commons Configuration 2.0 and got the commons-configuration2-2.0-beta2.jar
Add the commons-configuration2-2.0-beta2.jar to external library
Add the needed dependency in maven.
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.2</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
<dependency>
<groupId>commons-jxpath</groupId>
<artifactId>commons-jxpath</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-jexl</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-vfs2</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>xml-resolver</groupId>
<artifactId>xml-resolver</artifactId>
<version>1.2</version>
</dependency>
commons-configuration2 now available on Maven Central: http://mvnrepository.com/artifact/org.apache.commons/commons-configuration2
A bug has been filed against the documentation (or against the repo, depending on your view). Apparently, commons-configuration2 will not be pushed to Maven central until final release, but the documentation on their website is automatically generated and points you to a non-existent repository. This will be fixed when a final release is done.
commons-configuration2-2.1 is now available in the Maven repository.
I started to learn Hibernate framework from "Hibernate 3.2 in Simple Steps" book, but I downloaded latest version of Hibernate which is 4.1.9. According to the book there are many essential jars we need to add to the class path like
Anttr-2.7.6.jar
asm.jar
asm-attrs.jar
cglib-2.1.3.jar
commons-collections-2.1.1.jar
commons-logging-1.0.4.jar
.
.
. etc.
But I can't find all those required jars in new version. So what can I do without going for an old version ?? Do I just only need to add jars in required folder,,, can any one please tell me what jars I should need to add class path (4.1.9 version).
This question may be silly but I'm a beginner and I'm stuck here. Please help me.
Thank you!
antlr-2.7.7.jar
commons-collections-3.2.1.jar
dom4j-1.6.1.jar
javassist-3.12.1.GA.jar
hibernate-core-4.0.1.Final.jar
hibernate-commons-annotations-4.0.1.Final.jar
hibernate-jpa-2.0-api-1.0.1.Final.jar
jboss-logging-3.1.0.CR2.jar
jboss-transaction-api_1.1_spec-1.0.0.Final.jar
The zip file which you download will have a required folder inside lib.It will be having all the necessary jars.
This is well explained in the Hibernate documentation (never just depend on a book when there's an abundance of good online material available, as is the case with Hibernate):
The lib/required/ directory contains all the JARs Hibernate requires.
All the jars in this directory must also be included in your project's
classpath.
All jars you need are right there, in the .zip file you already downloaded.
Assume you are downloaded Hibernate Software( http://hibernate.org/ ) following location.
Hibernate_HOME = /home/rangareddy/Hibernate/hibernate-release-4.2.7.Final
Jar files:
%Hibernate_HOME%/lib/required/antlr-2.7.7.jar
%Hibernate_HOME%/lib/required/dom4j-1.6.1.jar
%Hibernate_HOME%/lib/required/hibernate-commons-annotations-4.0.2.Final.jar
%Hibernate_HOME%/lib/required/hibernate-core-4.2.7.Final.jar
%Hibernate_HOME%/lib/required/hibernate-jpa-2.0-api-1.0.1.Final.jar
%Hibernate_HOME%/lib/required/javassist-3.18.1-GA.jar
%Hibernate_HOME%/lib/required/jboss-logging-3.1.0.GA.jar
%Hibernate_HOME%/lib/required/jboss-transaction-api_1.1_spec-1.0.1.Final.jar
%Hibernate_HOME%/lib/jpa/hibernate-entitymanager-4.2.7.Final.jar
I'd suggest learn to use maven or gradle first and let them to help you set up the dependencies.
Using a dependency management tools in such days of java development is important and useful, all well known java libraries support this way and also it is recommanded.
A tech book may be outdated very soon, for such of this kind of details, the official doc would be always the first choice.
in case of using maven add this code to your pom file
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.2.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate.common</groupId>
<artifactId>hibernate-commons-annotations</artifactId>
<version>4.0.1.Final</version>
<classifier>tests</classifier>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.0.1.Final</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.4</version>
</dependency>
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
<version>3.1.0.CR2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.4</version>
</dependency>
Can someone help me write the dependency for javax.persistence. I have googled it but nothing worked.
I bumped into this page that gives some details on how to write the dependency, but yet i am unable to write it. Can someone help me out?
This is the one for javax.persistence:
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0.2</version>
<scope>provided</scope>
</dependency>
and this is for the whole Java EE 6 stack:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
Edit
Note that I specified a provided scope here, which means that your dependency is available at compile- and test-time, but will not be packaged into your artifacts. This is usually needed if you want to deploy your artifacts in an application server, since they provide their own implementation of the api.
And add this dependency in your pom.xml:
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0.2</version>
</dependency>
That "Coping with Sun JARs" page might be a little outdated, this JAR is available in the Maven Central Repository
Updated link:
https://mvnrepository.com/artifact/javax.persistence/javax.persistence-api/2.2 is here.
and the maven dependency is as below:
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
For the latest versions javax.persistance is not working instead of that we can use jakarta.persistence to create an entity or resolve the error Cannot resolve symbol 'Entity'. For that need to add the dependency
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>6.1.6.Final</version>
<type>pom</type>
</dependency>