I have created a simple application that has the task of retrieving the command results (RAM usage in percent) and saving them to a txt file at various intervals. Unfortunately I am getting the following error:
ubuntu@ip-172-31-31-49:~$ java -cp ~/RAMDataGenerator/target/RAMDataGenerator-1.0.0-SNAPSHOT-jar-with-dependencies.jar data.App
Error: Could not find or load main class data.App
Caused by: java.lang.ClassNotFoundException: data.App
I checked also to be sure that the main class is in the jar file.
ubuntu@ip-172-31-31-49:~/RAMDataGenerator/target$ jar tf RAMGenerator-0.0.1-SNAPSHOT-jar-with-dependencies.jar
META-INF/
META-INF/MANIFEST.MF
LICENSE
META-INF/maven/
META-INF/maven/args4j/
META-INF/maven/args4j/args4j/
META-INF/maven/args4j/args4j/pom.properties
META-INF/maven/args4j/args4j/pom.xml
OSGI-OPT/
OSGI-OPT/src/
OSGI-OPT/src/org/
OSGI-OPT/src/org/kohsuke/
OSGI-OPT/src/org/kohsuke/args4j/
OSGI-OPT/src/org/kohsuke/args4j/Argument.java
OSGI-OPT/src/org/kohsuke/args4j/ClassParser.java
OSGI-OPT/src/org/kohsuke/args4j/CmdLineException.java
OSGI-OPT/src/org/kohsuke/args4j/CmdLineParser.java
OSGI-OPT/src/org/kohsuke/args4j/Config.java
OSGI-OPT/src/org/kohsuke/args4j/ExampleMode.java
OSGI-OPT/src/org/kohsuke/args4j/FieldParser.java
OSGI-OPT/src/org/kohsuke/args4j/IllegalAnnotationError.java
OSGI-OPT/src/org/kohsuke/args4j/Localizable.java
OSGI-OPT/src/org/kohsuke/args4j/Messages.java
OSGI-OPT/src/org/kohsuke/args4j/NamedOptionDef.java
OSGI-OPT/src/org/kohsuke/args4j/Option.java
OSGI-OPT/src/org/kohsuke/args4j/OptionDef.java
OSGI-OPT/src/org/kohsuke/args4j/OptionHandlerFilter.java
OSGI-OPT/src/org/kohsuke/args4j/OptionHandlerRegistry.java
OSGI-OPT/src/org/kohsuke/args4j/ParserProperties.java
OSGI-OPT/src/org/kohsuke/args4j/Starter.java
OSGI-OPT/src/org/kohsuke/args4j/Utilities.java
OSGI-OPT/src/org/kohsuke/args4j/XmlParser.java
OSGI-OPT/src/org/kohsuke/args4j/package.html
OSGI-OPT/src/org/kohsuke/args4j/spi/
OSGI-OPT/src/org/kohsuke/args4j/spi/AnnotationImpl.java
OSGI-OPT/src/org/kohsuke/args4j/spi/ArgumentImpl.java
OSGI-OPT/src/org/kohsuke/args4j/spi/ArrayFieldSetter.java
OSGI-OPT/src/org/kohsuke/args4j/spi/BooleanOptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/ByteOptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/CharOptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/ConfigElement.java
OSGI-OPT/src/org/kohsuke/args4j/spi/DelimitedOptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/DoubleOptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/EnumOptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/ExplicitBooleanOptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/FieldSetter.java
OSGI-OPT/src/org/kohsuke/args4j/spi/FileOptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/FloatOptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/Getter.java
OSGI-OPT/src/org/kohsuke/args4j/spi/InetAddressOptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/IntOptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/LongOptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/MacAddressOptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/MapOptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/Messages.java
OSGI-OPT/src/org/kohsuke/args4j/spi/MethodSetter.java
OSGI-OPT/src/org/kohsuke/args4j/spi/MultiFileOptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/MultiPathOptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/MultiValueFieldSetter.java
OSGI-OPT/src/org/kohsuke/args4j/spi/OneArgumentOptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/OptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/OptionImpl.java
OSGI-OPT/src/org/kohsuke/args4j/spi/Parameters.java
OSGI-OPT/src/org/kohsuke/args4j/spi/PathOptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/PatternOptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/RestOfArgumentsHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/Setter.java
OSGI-OPT/src/org/kohsuke/args4j/spi/Setters.java
OSGI-OPT/src/org/kohsuke/args4j/spi/ShortOptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/StopOptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/StringArrayOptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/StringOptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/SubCommand.java
OSGI-OPT/src/org/kohsuke/args4j/spi/SubCommandHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/SubCommands.java
OSGI-OPT/src/org/kohsuke/args4j/spi/URIOptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/URLOptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/UuidOptionHandler.java
OSGI-OPT/src/org/kohsuke/args4j/spi/package.html
org/
org/kohsuke/
org/kohsuke/args4j/
org/kohsuke/args4j/Argument.class
org/kohsuke/args4j/ClassParser.class
org/kohsuke/args4j/CmdLineException.class
org/kohsuke/args4j/CmdLineParser$CmdLineImpl.class
org/kohsuke/args4j/CmdLineParser.class
org/kohsuke/args4j/Config$ConfigHandler.class
org/kohsuke/args4j/Config.class
org/kohsuke/args4j/ExampleMode$1.class
org/kohsuke/args4j/ExampleMode$2.class
org/kohsuke/args4j/ExampleMode.class
org/kohsuke/args4j/FieldParser.class
org/kohsuke/args4j/IllegalAnnotationError.class
org/kohsuke/args4j/Localizable.class
org/kohsuke/args4j/Messages.class
org/kohsuke/args4j/Messages.properties
org/kohsuke/args4j/Messages_de.properties
org/kohsuke/args4j/Messages_en.properties
org/kohsuke/args4j/Messages_ru.properties
org/kohsuke/args4j/NamedOptionDef.class
org/kohsuke/args4j/Option.class
org/kohsuke/args4j/OptionDef.class
org/kohsuke/args4j/OptionHandlerFilter$1.class
org/kohsuke/args4j/OptionHandlerFilter$2.class
org/kohsuke/args4j/OptionHandlerFilter$3.class
org/kohsuke/args4j/OptionHandlerFilter.class
org/kohsuke/args4j/OptionHandlerRegistry$DefaultConstructorHandlerFactory.class
org/kohsuke/args4j/OptionHandlerRegistry$OptionHandlerFactory.class
org/kohsuke/args4j/OptionHandlerRegistry.class
org/kohsuke/args4j/ParserProperties$1.class
org/kohsuke/args4j/ParserProperties.class
org/kohsuke/args4j/Starter.class
org/kohsuke/args4j/Utilities.class
org/kohsuke/args4j/XmlParser.class
org/kohsuke/args4j/spi/
org/kohsuke/args4j/spi/AnnotationImpl.class
org/kohsuke/args4j/spi/ArgumentImpl.class
org/kohsuke/args4j/spi/ArrayFieldSetter.class
org/kohsuke/args4j/spi/BooleanOptionHandler.class
org/kohsuke/args4j/spi/ByteOptionHandler.class
org/kohsuke/args4j/spi/CharOptionHandler.class
org/kohsuke/args4j/spi/ConfigElement.class
org/kohsuke/args4j/spi/DelimitedOptionHandler.class
org/kohsuke/args4j/spi/DoubleOptionHandler.class
org/kohsuke/args4j/spi/EnumOptionHandler.class
org/kohsuke/args4j/spi/ExplicitBooleanOptionHandler.class
org/kohsuke/args4j/spi/FieldSetter.class
org/kohsuke/args4j/spi/FileOptionHandler.class
org/kohsuke/args4j/spi/FloatOptionHandler.class
org/kohsuke/args4j/spi/Getter.class
org/kohsuke/args4j/spi/InetAddressOptionHandler.class
org/kohsuke/args4j/spi/IntOptionHandler.class
org/kohsuke/args4j/spi/LongOptionHandler.class
org/kohsuke/args4j/spi/MacAddressOptionHandler.class
org/kohsuke/args4j/spi/MapOptionHandler.class
org/kohsuke/args4j/spi/Messages.class
org/kohsuke/args4j/spi/Messages.properties
org/kohsuke/args4j/spi/Messages_de.properties
org/kohsuke/args4j/spi/Messages_en.properties
org/kohsuke/args4j/spi/Messages_ru.properties
org/kohsuke/args4j/spi/MethodSetter.class
org/kohsuke/args4j/spi/MultiFileOptionHandler.class
org/kohsuke/args4j/spi/MultiPathOptionHandler.class
org/kohsuke/args4j/spi/MultiValueFieldSetter.class
org/kohsuke/args4j/spi/OneArgumentOptionHandler.class
org/kohsuke/args4j/spi/OptionHandler.class
org/kohsuke/args4j/spi/OptionImpl.class
org/kohsuke/args4j/spi/Parameters.class
org/kohsuke/args4j/spi/PathOptionHandler.class
org/kohsuke/args4j/spi/PatternOptionHandler.class
org/kohsuke/args4j/spi/RestOfArgumentsHandler.class
org/kohsuke/args4j/spi/Setter.class
org/kohsuke/args4j/spi/Setters.class
org/kohsuke/args4j/spi/ShortOptionHandler.class
org/kohsuke/args4j/spi/StopOptionHandler.class
org/kohsuke/args4j/spi/StringArrayOptionHandler.class
org/kohsuke/args4j/spi/StringOptionHandler.class
org/kohsuke/args4j/spi/SubCommand.class
org/kohsuke/args4j/spi/SubCommandHandler$1.class
org/kohsuke/args4j/spi/SubCommandHandler.class
org/kohsuke/args4j/spi/SubCommands.class
org/kohsuke/args4j/spi/URIOptionHandler.class
org/kohsuke/args4j/spi/URLOptionHandler.class
org/kohsuke/args4j/spi/UuidOptionHandler.class
data/
data/pojo/
data/generator/
data/runner/
data/pojo/DataPOJO.class
data/generator/TimeGenerator.class
data/generator/DataGenerator.class
data/runner/SaveToFile.class
data/runner/SaveFileRunner.class
data/App.class
This is the first time something like this has happened to me. I have created a similar application that downloads CPU usage data and it works, the only difference is the command to be executed.
This is what my pom.xml file looks like:
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.project</groupId>
<artifactId>RAMGenerator</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>7</source>
<target>7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>data.App</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/args4j/args4j -->
<dependency>
<groupId>args4j</groupId>
<artifactId>args4j</artifactId>
<version>2.33</version>
</dependency>
</dependencies>
</project>
Anyone have any idea what might be causing this error?
Edit 1 (Corrected):
Answers in this question not works for me: What does "Could not find or load main class" mean?
I have created an identical jar that differs only in the type of data saved, and that works. If the problem was related to one of the answers to this question, both jar files would show the same error at startup, not just one.
Edit 2 (reply to comment by Joachim Sauer):
Without specifying the main class:
ubuntu@ip-172-31-29-175:~/RAMDataGenerator/target$ java -jar ~/RAMDataGenerator/target/RAMDataGenerator-1.0.0-SNAPSHOT-jar-with-dependencies.jar
Error: Unable to access jarfile /home/ubuntu/RAMDataGenerator/target/RAMDataGenerator-1.0.0-SNAPSHOT-jar-with-dependencies.jar
With specifying the main class:
ubuntu@ip-172-31-29-175:~/RAMDataGenerator/target$ java -jar -cp ~/RAMDataGenerator/target/RAMDataGenerator-1.0.0-SNAPSHOT-jar-with-dependencies.jar data.App
Error: Unable to access jarfile data.App