Lang noclassdeffounderror java lang class forname0 native method

Компилятор не находит путь к классу

При компиляции выскакивает ошибка:
Exception in thread «main» java.lang.NoClassDefFoundError: net/sf/jasperreports/engine/JRException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:190)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:113)
Caused by: java.lang.ClassNotFoundException: net.sf.jasperreports.engine.JRException
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
. 3 more

Я знаю, что она означает, но не могу найти решение этой проблеме.

В среде разработки я подключил все библиотеки которые нужны для работы, но ничего не получается.
Помогите пожалуйста. Подскажите где еще нужно прописать путь к классу.

Среда разработки — IntelliJ IDEA 12

Как установить путь к классу?
Как правильно указать путь к jar архиву?

Почему компилятор говорит, что не находит класс HttpServlet?
Hi, All! Начало проги такое: import java.io.*; import javax.servlet.*; public class.

При подключении к проекту классу QTextStream Qt не находит его в директории
Всем доброго времени суток, дело в том, что при работе с Qt понадобилось использовать класс.

Компилятор не находит метод
Програмирую на Unity C# В программе Monodevelop. В MDSN нашёл нужный мне метод. Но когда я пишу .

Предлагаю скомпилить «руками» «java -classpath . «, если скомпилится — копать в сторону IDE, если нет — думать дальше

проверил еще раз 200 настройки в IDEA и наличие в компьютере нужных библиотек, подкорректировал.
Ошибку о том, что не находит классы перестал выдавать, но теперь пишет:

Exception in thread «main» java.lang.NullPointerException
at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2310)
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2323)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java: 2794)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:801)
at java.io.ObjectInputStream.(ObjectInputStream.java:299)
at net.sf.jasperreports.engine.util.ContextClassLoaderObjectInputStream.(Cont extClassLoaderObjectInputStream.java:58)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:248)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:233)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:416)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java: 839)
at aids.db.report.IFA.JasperHello.showReport(JasperHello.java:23)
at aids.db.report.IFA.JasperHello.main(JasperHello.java:49)

чего конкретно нет не пойму?
Вот код класс который я хочу запустить:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
import aids.db.connect.ConnToDb; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.view.JRViewer; import javax.swing.*; import java.awt.*; import java.io.InputStream; import java.sql.Connection; import java.sql.SQLException; public class JasperHello { Connection conn = null; private void showReport() { String reportName = "D:/Juric/Laboratoria/Reports/firstReport.jasper"; InputStream is = this.getClass().getClassLoader().getResourceAsStream(reportName); try { JasperPrint jp = JasperFillManager.fillReport(is, null, JRViewer jv = new JRViewer(jp); //Вставляю просмотр в панель JFrame jf = new JFrame(); jf.getContentPane().add(jv); jf.setVisible(true); jf.setSize(new Dimension(800, 600)); jf.setLocationRelativeTo(null); jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } catch (JRException e) { e.printStackTrace(); } } private void initConnection() { try { conn = ConnToDb.CreatingConnector();//здесь указан метод в статическом классе - все работает нормально } catch (SQLException e) { e.printStackTrace(); } } public static void main(String[] args) { JasperHello jasper = new JasperHello(); jasper.initConnection(); jasper.showReport(); } }

Добавлено через 5 минут
этот пример я взял вот по этой ссылке http://kristantohans.wordpress. on-part-2/

Ну во первых, рекомендую глянуть строчку 20 в коде, коде, который вы показали, где третьим параметром передается конекшн или JRDataSource?
Во вторых, убедиться, что в «D:/Juric/Laboratoria/Reports/firstReport.jasper», лежит скомпиленный отчет
В третьих рекомендую использовать для построения не компиленый jasper, а jrxml загружать в JasperDesign, а затем с компилить в коде:

JasperCompileManager.compileReport(jasperDesign)

String reportName = «D:/Juric/Laboratoria/Reports/firstReport.jasper»;
этот файл должен лежать в папке проекта, тогда с ним можно будет работать как с ресурсом, а иначе is == null; он не понимает внешние пути

по оригинальной ссылке, кстати, указан относительный путь

Ну во первых, рекомендую глянуть строчку 20 в коде, коде, который вы показали, где третьим параметром передается конекшн или JRDataSource?
Во вторых, убедиться, что в «D:/Juric/Laboratoria/Reports/firstReport.jasper», лежит скомпиленный отчет

JasperPrint jp = JasperFillManager.fillReport(is, null, conn);

) вышла ошибочка
2. ДА. Этот файл есть в данной папке, там же есть и файл firstReport.jrxml

String reportName = «D:/Juric/Laboratoria/Reports/firstReport.jasper»;
этот файл должен лежать в папке проекта, тогда с ним можно будет работать как с ресурсом, а иначе is == null; он не понимает внешние пути

Честно говоря, я не до конца разобрался откуда начинается путь проекта
У меня проект начинается с папки (Laboratoria), которая лежит на диске D:\Juric
вот дерево :
D:
-Juric
-Laboratoria
-src
-bin
-Reports
-firstReport.jasper
-firstReport.jrxml
-AIDS Derby
Как правильно указать путь к файлу отчета

перенес в папку src вроде сработало, но выдало ошибку:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ReferenceMap (wrong name: org/apache/commons/collections4/map/ReferenceMap) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.>(DefaultExtensionsRegistry.java:97) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at java.lang.Class.newInstance(Class.java:374) at net.sf.jasperreports.engine.util.ClassUtils.instantiateClass(ClassUtils.java:59) at net.sf.jasperreports.extensions.ExtensionsEnvironment.createDefaultRegistry(ExtensionsEnvironment.java:81) at net.sf.jasperreports.extensions.ExtensionsEnvironment.>(ExtensionsEnvironment.java:69) at net.sf.jasperreports.engine.util.JRStyledTextParser.>(JRStyledTextParser.java:83) at net.sf.jasperreports.engine.fill.JRBaseFiller.>(JRBaseFiller.java:124) at net.sf.jasperreports.engine.fill.JRVerticalFiller.>(JRVerticalFiller.java:89) at net.sf.jasperreports.engine.fill.JRVerticalFiller.>(JRVerticalFiller.java:104) at net.sf.jasperreports.engine.fill.JRVerticalFiller.>(JRVerticalFiller.java:62) at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:179) at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:81) at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:457) at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:418) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:839) at aids.db.report.IFA.JasperHello.showReport(JasperHello.java:24) at aids.db.report.IFA.JasperHello.main(JasperHello.java:50) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

не пойму чего, у меня эта библиотека включена в проект, что видно со скрина дерева файлов. В самом низу список всех подключенных библиотек.
Но я заметил вот, что
этот класс (ReferenceMap) он есть в commons-collections4-4.0 только там такой путь:
org/apache/commons/collections4/map/ReferenceMap

а в commons-collections-3.2.1 этот путь правильный
org/apache/commons/collections/map/ReferenceMap

Так выходит, что мне нужно пользоваться только версией 3.2.1 ?

Добавлено через 4 минуты
Оставил библиотеку 3.2.1
теперь выдает такую ошибку:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/digester/Rule at net.sf.jasperreports.components.ComponentsExtensionsRegistryFactory.>(ComponentsExtensionsRegistryFactory.java:110) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:270)

Источник

Читайте также:  Phpinfo php как модуль
Оцените статью