问题
在 Eclipse 中运行 Maven“编译”、“安装”命令以创建可执行 JAR 并继续运行该 JAR 后,出现以下错误
Error: Unable to initialize main class org.example.project.StockTracker`
Caused by: java.lang.NoClassDefFoundError: com/mashape/unirest/http/exceptions/UnirestException
我不知道发生了什么事。我该如何解决这个问题?以下是一些进一步的细节。我使用主类信息更新了 POM,并将类路径设置为“true”。
主类代码
package org.example.project;
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;
import com.mashape.unirest.http.exceptions.UnirestException;
public class StockTracker {
public static void main (String[] args) throws UnirestException, InterruptedException {
HttpResponse<String> response = Unirest.get("https://apidojo-yahoo-finance-v1.p.rapidapi.com/market/get-quotes?region=US&lang=en&symbols=TSLA")
.header("x-rapidapi-host", "apidojo-yahoo-finance-v1.p.rapidapi.com")
.header("x-rapidapi-key", "api-key")
.asString();
//System.out.println(response.getBody());
System.out.println("response.getBody()");
}
}
Run Code Online (Sandbox Code Playgroud)
UNIREST 异常类代码
package com.mashape.unirest.http.exceptions;
public class UnirestException extends Exception {
private static final long serialVersionUID = -3714840499934575734L;
public UnirestException(Exception e) {
super(e); …Run Code Online (Sandbox Code Playgroud) 我最近使用新的 Jsoup 依赖项版本 1.15.3 更新了 pom.xml,从那时起我收到了“NoClassDefFoundError: org/jsoup/safety/Whitelist”。我可以使用其他版本来解决此问题吗?
我知道有很多关于NoClassDefFoundError的帖子,他们似乎都在讨论jar文件.虽然我对日食中的java感到很自在,但我很遗憾为什么我能想到的最简单的东西不起作用,除非他们在大学方面打破了这个问题.
public class hello {
public static void main (String args[]) {
System.out.println ("Hello World!");
}
}
Run Code Online (Sandbox Code Playgroud)
这是整个hello.java程序,抛出这个:
Exception in thread "main" java.lang.NoClassDefFoundError: hello/java
Caused by: java.lang.ClassNotFoundException: hello.java
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: hello.java. Program will exit.
Run Code Online (Sandbox Code Playgroud)
$ CLASSPATH = /:在/ usr/JAVA /最新/ lib目录:/家庭/ 41 /名为myusername/bin中
java -verbose hello.class
Run Code Online (Sandbox Code Playgroud)
得到:
[Opened /usr/java/jdk1.6.0_10/jre/lib/rt.jar] [Loaded java.lang.Object from /usr/java/jdk1.6.0_10/jre/lib/rt.jar] [Loaded java.io.Serializable from /usr/java/jdk1.6.0_10/jre/lib/rt.jar] [Loaded java.lang.Comparable from /usr/java/jdk1.6.0_10/jre/lib/rt.jar] …
我一直在Netbeans的一个项目上工作.现在我想提交它并允许标记用脚本编译它.但是,当我尝试通过命令行运行时,我得到NoClassDefFoundError.即使手动将类路径设置为当前目录.
javac Main.java工作正常
然后调用java -classpath.主要给出:
java -classpath . Main
Exception in thread "main" java.lang.NoClassDefFoundError: Main (wrong name: pro
ject2/Main)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
4)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
Run Code Online (Sandbox Code Playgroud) 我目前正在开发一个简单的Web项目,我正在使用Polarion的SDK .尝试使用相应的*.jar-Files时,Tomcat 7会在启动时抛出以下错误消息:
SCHWERWIEGEND: Exception sending context initialized event to listener instance of class org.apache.myfaces.webapp.StartupServletContextListener
java.lang.NoClassDefFoundError: Lcom/polarion/alm/ws/client/session/SessionWebService;
Run Code Online (Sandbox Code Playgroud)
根据我所进行的研究,Java正试图找到com.polarion.ws.client.session.SessionWebService 的实例(因此是领先的L).我已经检查了所需条目的类路径 - 它就在那里.
C:\Polarion\polarion\SDK\lib\com.polarion.alm.ws.client\wsclient.jar
Run Code Online (Sandbox Code Playgroud)
截至目前,我已经完成了可能出错的想法.你有什么想法?
非常感谢!西蒙
好吧,所以我正在创建一个简单的Java类,只需打印出"Hello!".这是代码:
public class Hello
{
public static void main(String[] args)
{
System.out.println("Hello!");
}
}
Run Code Online (Sandbox Code Playgroud)
我通过命令提示符编译了类,然后,当我想运行它时,它给了我一个NoClassDefFoundError,表明类路径存在问题.这真是太愚蠢了,因为它是一个一流的程序.我尝试了很多东西但似乎没有解决问题.
我怎样才能解决这个问题?
我有一个类,我在OSX(Java 1.6)上的eclipse中的标准java项目中编码.该类使用来自另一个库的类和接口.
我选择了类,然后选择Run As> Java Application,一切运行良好.
之后我尝试将我的项目作为Maven项目运行,事情开始变得有点令人沮丧.我总结了这里的所有步骤,希望有人能告诉我我做错了什么: - 从标准的java项目中我点击右键配置>转换为Maven项目并单击芬兰语.到目前为止都很好.
然后构建路径>配置构建路径>并添加包含我的项目的文件夹.还好
然后,我删除了所有的@Override注释,因为我在某处看到Maven使用的是JDK 1.5而不是1.6.无论如何,我将它们移除,我的红旗消失了.此时我的类看起来与原始java项目完全一样(除了我删除的@override)
然后,我做Maven>干净.我获得了成功
那么Maven>安装.我获得了成功
那么我选择我的类并运行另一个> Java应用程序,我得到这个丑陋的痕迹:
线程"main"中的异常java.lang.NoClassDefFoundError:LMAXTrading/algos/HeartbeatClient由以下引起:java.lang.ClassNotFoundException:java.net的java.net.URLClassLoader $ 1.run(URLClassLoader.java:202)中的LMAXTrading.algos.HeartbeatClient.位于java.lang.ClassLoader.findClass(URLClassLoader.java:190)的security.AccessController.doPrivileged(Native Method),位于sun.misc.Launcher的$ java.lang.ClassLoader.loadClass(ClassLoader.java:306)$ AppClassLoader.loadClass( Launcher.java:301)at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
我不知道从哪里开始.您可以想象我经历了大量的试验和错误,并在SO和其他地方进行了搜索,以找到一种方法来实现这一目标.但我无法弄清楚出了什么问题.所以,如果有人有想法,我已经准备好倾听了.
我从Navigator View以及Package explorer视图粘贴到我的目录布局下面


这里是我添加了JRE配置的POM.xml
<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>someproject</groupId>
<artifactId>someproject</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
Run Code Online (Sandbox Code Playgroud) 我在使用API级别11时遇到错误.
我的应用程序崩溃了以下内容: java.lang.NoClassDefFoundError: com.question.question.BitmapCache只有当我将我的应用程序与运行api级别11的设备一起使用时:
我有谷歌这个当然,并尝试了我遇到的每一个解决方案,但仍然没有运气.
以下是Logcat中存在问题的行:
public GoogleCardsAdapter(final Context context) {
mContext = context;
mMemoryCache = new BitmapCache(); //<---- This line here
}
Run Code Online (Sandbox Code Playgroud)
这是位图缓存类:
public class BitmapCache extends LruCache<Integer, Bitmap> {
private static final int KILO = 1024;
private static final int MEMORY_FACTOR = 2 * KILO;
public BitmapCache() {
super((int) (Runtime.getRuntime().maxMemory() / MEMORY_FACTOR));
}
@Override
protected int sizeOf(final Integer key, final Bitmap value) {
return value.getRowBytes() * value.getHeight() / KILO;
}
}
Run Code Online (Sandbox Code Playgroud)
我也在使用一些库:


如果有人知道这里出了什么问题,那将非常感激.
所以我在Linux中编写了这个程序,当我创建一个jar并运行它时,它运行得很好.
但出于某种原因,当我把这个罐子放在窗户里时,它并没有.
其中一些有效,但当我尝试做一个简单的点击动作事件时,它会崩溃并告诉我
有一个
Exception in thread "AWT-EVentQueue-0" java.lang.NoClassDefFoundError: miginfocom/layout/cc
Run Code Online (Sandbox Code Playgroud)
好吧无论如何我摆脱了它的某些组件,它的工作原理,但与它们不相干.
// MigLayout layout = new MigLayout("fillx");
JPanel content = new JPanel(/*layout*/);
/*CC componentConstraints = new CC();
CC c = new CC();
componentConstraints.alignX("center").spanX();
c.alignX("center").span();
c.alignY("bottom").span();*/
content.add(label/*, componentConstraints*/);
content.add(label1/*,c*/);
// after this I add it to a Jframe etc
Run Code Online (Sandbox Code Playgroud)
那里被注释掉的一切都是它无法在Windows上运行的原因.
但它会在Linux上,我不知道为什么这是......
任何人都可以告诉为什么这是或在哪里找到.这将是非常感谢和有用的未来:)
我有一个使用三个库的Maven项目(Netbeans IDE):gson,okhttp,okio.我试图通过终端和命令$ java -jar app.jar执行构建项目后创建的.jar,但我不断收到以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: okhttp3/Callback
at it.bitrack.main.Main.main(Main.java:43)
Caused by: java.lang.ClassNotFoundException: okhttp3.Callback
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
Run Code Online (Sandbox Code Playgroud)
我已经将这三个库的.jar文件添加到与app.jar相同的文件夹中,并添加到名为libs的子文件夹中,但是没有任何正面效果.
你能猜到为什么以及我可以尝试使它起作用的东西吗?在Netbeans中执行时,该应用程序运行完美...
这是我的POM文件:
<?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>it.bitrack</groupId>
<artifactId>BiTrackAssetSimulator</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.6.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<!-- Build an executable JAR -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>it.bitrack.main.Main</mainClass>
</manifest> …Run Code Online (Sandbox Code Playgroud)