spring - java.lang.ClassNotFoundException even though I specify -cp argument to the class file -
this question has answer here:
i'm not sure why having issue. here's i'm running on linux command line:
sudo java -jar gs-rest-service-0.1.0.jar -cp ./hello java.lang.classnotfoundexception: hello.application sudo java -jar gs-rest-service-0.1.0.jar -cp hello java.lang.classnotfoundexception: hello.application
tried both ways, ./ , without. tried this:
sudo java -jar gs-rest-service-0.1.0.jar -cp ./main/java/hello java.lang.classnotfoundexception: hello.application
again , without ./. when view jar file see application.class file in main/java/hello lower case. here's manifest.mf
manifest-version: 1.0 class-path: ./hello
update: got working. here had issue in pom.xml file had specified start-class hello.application package names kept messing around never in sync , adding -cp wasn't helping since have package 1 thing in classes, start-class in pom.xml another, , -cp in wrong location on command line! argh.. dumb night.
here's working code:
pom.xml
<?xml version="1.0" encoding="utf-8"?> <project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <groupid>org.springframework</groupid> <artifactid>gs-rest-service</artifactid> <version>0.1.0</version> <packaging>jar</packaging> <parent> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-parent</artifactid> <version>1.0.2.release</version> </parent> <dependencies> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> </dependency> <dependency> <groupid>com.fasterxml.jackson.core</groupid> <artifactid>jackson-databind</artifactid> </dependency> </dependencies> <properties> <start-class>main.java.hello.application</start-class> </properties> <build> <plugins> <plugin> <artifactid>maven-compiler-plugin</artifactid> <version>2.3.2</version> </plugin> <plugin> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-maven-plugin</artifactid> </plugin> </plugins> </build> <repositories> <repository> <id>spring-snapshots</id> <url>http://repo.spring.io/libs-snapshot</url> <snapshots><enabled>true</enabled></snapshots> </repository> </repositories> <pluginrepositories> <pluginrepository> <id>spring-snapshots</id> <url>http://repo.spring.io/libs-snapshot</url> <snapshots><enabled>true</enabled></snapshots> </pluginrepository> </pluginrepositories> </project>
application.java:
package main.java.hello; import org.springframework.boot.autoconfigure.enableautoconfiguration; import org.springframework.boot.springapplication; import org.springframework.context.annotation.componentscan; @componentscan @enableautoconfiguration public class application { public static void main(string[] args) { springapplication.run(application.class, args); } }
all other java files have same package name specified , used in eclipse ide. rid of ide showing red x's on ran maven param:
mvn dependency:copy-dependencies
as described in wonderful question here:
downloading maven dependencies directory not in repository?
after downloaded created user library , pulled jar files dependency directory that's created after maven it's download thing. thought i'd add question. bit out of scope helpful rid of further errors in ide show when editing stupid simple hello world web service.
you need specify main class.
sudo java -cp gs-rest-service-0.1.0.jar -cp ./main/java hello.application
the -jar
flag tells java run main class referenced in jar.
Comments
Post a Comment