简体   繁体   English

为什么我从org / jfree / chart中收到NoClassDefFoundError?

[英]Why am I getting a NoClassDefFoundError from org/jfree/chart?

I am trying to make a simple applet that displays a 3D pie chart, but am getting a 我正在尝试制作一个显示3D饼图的简单小程序,但是

RuntimeException (`java.lang.NoClassDefFoundError: org/jfree/chart/ChartPanel`)

I've been running in circles trying to find out why, thinking that it may be a problem with the applet being able to read the 3rd party libraries I used. 我一直在兜圈子,试图找出原因,以为小程序能够读取我使用的第三方库可能是一个问题。 It works fine in NetBeans, but in the browser I keep getting the error. 它在NetBeans中工作正常,但是在浏览器中,我不断收到错误消息。 Any clue what I did wrong? 知道我做错了什么吗? Code below: 代码如下:

HTML: HTML:

<APPLET codebase="classes" code="CyberThreatApplet/CyberThreatApplet.class" 
    archive="jfreechart-1.0.19.jar,jcommon-1.0.23.jar" width=350 height=200>
</APPLET>

Java: Java的:

package CyberThreatApplet;

import java.awt.Dimension;
import javax.swing.JApplet;
import org.jfree.chart.*;
import org.jfree.chart.plot.PiePlot3D;
import org.jfree.data.general.*;
import org.jfree.util.Rotation;

public class CyberThreatApplet extends JApplet

{

@Override
public void init()
{
    CreateChart("Cyber Attack Pie Chart","Motivations Behind Cyber Attacks - May 2013");
}

private void CreateChart(String appTitle, String chartTitle)

{
    PieDataset dataset = createDataset();
    JFreeChart chart = createChart(dataset,chartTitle);
    ChartPanel chartPanel = new ChartPanel(chart);
    chartPanel.setPreferredSize(new Dimension(500,300));
    add(chartPanel);
}

private PieDataset createDataset()

{
    DefaultPieDataset result = new DefaultPieDataset();
    result.setValue("Cybercrime",46);
    result.setValue("Hacktivism",36);
    result.setValue("Cyber Espionage",9);
    result.setValue("Cyber Warfare",9);
    return result;
}

private JFreeChart createChart(PieDataset dataset,String title)

{
    JFreeChart chart = ChartFactory.createPieChart3D(title,dataset,true,true,false);
    PiePlot3D plot = (PiePlot3D)chart.getPlot();
    plot.setStartAngle(90);
    plot.setDirection(Rotation.CLOCKWISE);
    plot.setForegroundAlpha(0.75f);
    return chart;
}

}

确保jfreechart-1.0.19.jar (和所有其他jar)位于相对于HTML文件的classes目录中

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM