This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 212977 - Java reports NoClassDefFoundError on launch
Summary: Java reports NoClassDefFoundError on launch
Status: RESOLVED DUPLICATE of bug 212938
Alias: None
Product: platform
Classification: Unclassified
Component: -- Other -- (show other bugs)
Version: 7.2
Hardware: PC Linux
: P3 normal (vote)
Assignee: Stanislav Aubrecht
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-05-24 23:11 UTC by mwebv
Modified: 2012-05-31 07:53 UTC (History)
3 users (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description mwebv 2012-05-24 23:11:55 UTC
Product Version = NetBeans IDE 7.2 Beta (Build 201205031832)
Operating System = Linux version 3.2.0-24-generic-pae running on i386 (VirtualBox latest)
Java; VM; Vendor = 1.7.0_03
Runtime = OpenJDK Client VM 22.0-b10

Fresh install of 7.2 Beta, Ubuntu 12.04
Probably it's my Java install or machine config.
On first launch, Java reported:

java.lang.NoClassDefFoundError: Could not initialize class com.sun.jna.Native
	at org.netbeans.modules.masterfs.watcher.linux.LinuxNotifier.<init>(LinuxNotifier.java:103)
	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:525)
	at java.lang.Class.newInstance0(Class.java:372)
	at java.lang.Class.newInstance(Class.java:325)
	at org.openide.util.lookup.implspi.SharedClassObjectBridge.newInstance(SharedClassObjectBridge.java:64)
[catch] at org.openide.util.lookup.MetaInfServicesLookup$P.getInstance(MetaInfServicesLookup.java:519)
	at org.netbeans.modules.masterfs.watcher.Watcher.getNotifierForPlatform(Watcher.java:414)
	at org.netbeans.modules.masterfs.watcher.Watcher.<init>(Watcher.java:85)
	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:525)
	at java.lang.Class.newInstance0(Class.java:372)
	at java.lang.Class.newInstance(Class.java:325)
	at org.openide.util.lookup.implspi.SharedClassObjectBridge.newInstance(SharedClassObjectBridge.java:64)
	at org.openide.util.lookup.MetaInfServicesLookup$P.getInstance(MetaInfServicesLookup.java:519)
	at org.openide.util.lookup.AbstractLookup$R.allInstances(AbstractLookup.java:1041)
	at org.openide.util.lookup.AbstractLookup$R.allInstances(AbstractLookup.java:1021)
	at org.openide.util.lookup.ProxyLookup$LazyCollection.computeSingleResult(ProxyLookup.java:1249)
	at org.openide.util.lookup.ProxyLookup$LazyCollection.computeDelegate(ProxyLookup.java:1091)
	at org.openide.util.lookup.ProxyLookup$LazyCollection.access$900(ProxyLookup.java:1021)
	at org.openide.util.lookup.ProxyLookup$LazyCollection$1.hasNext(ProxyLookup.java:1215)
	at org.netbeans.modules.masterfs.filebasedfs.FileBasedFileSystem$StatusImpl.resultChanged(FileBasedFileSystem.java:305)
	at org.netbeans.modules.masterfs.filebasedfs.FileBasedFileSystem$StatusImpl.<init>(FileBasedFileSystem.java:271)
	at org.netbeans.modules.masterfs.filebasedfs.FileBasedFileSystem.<init>(FileBasedFileSystem.java:81)
	at org.netbeans.modules.masterfs.filebasedfs.FileBasedFileSystem.<clinit>(FileBasedFileSystem.java:79)
	at org.netbeans.modules.masterfs.filebasedfs.FileBasedURLMapper.getFileObjects(FileBasedURLMapper.java:138)
	at org.netbeans.modules.masterfs.MasterURLMapper.getFileObjects(MasterURLMapper.java:65)
	at org.openide.filesystems.URLMapper.findFileObject(URLMapper.java:212)
	at org.netbeans.modules.projectapi.SimpleFileOwnerQueryImplementation.deserialize(SimpleFileOwnerQueryImplementation.java:209)
	at org.netbeans.modules.projectapi.Installer.run(Installer.java:59)
	at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1452)
	at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2032)
Comment 1 mwebv 2012-05-24 23:13:56 UTC
This was installed in an empty folder but imported my 7.1 config using the GUI dialog.
Comment 2 Marian Mirilovic 2012-05-25 08:24:25 UTC

*** This bug has been marked as a duplicate of bug 211655 ***
Comment 3 Stanislav Aubrecht 2012-05-25 08:36:10 UTC
Reporter, please attach full IDE log, thanks
Comment 4 bhaskar.vk 2012-05-30 16:36:20 UTC
I am not the original submitter, but I had this bug too on ubuntu 64bit.
I found the following stacktrace


SEVERE [org.openide.util.RequestProcessor]: Error in RequestProcessor org.netbeans.modules.masterfs.Installer
java.lang.Error: Failed to create temporary file for jnidispatch library: java.io.IOException: Permission denied
    at com.sun.jna.Native.loadNativeLibraryFromJar(Native.java:762)
    at com.sun.jna.Native.loadNativeLibrary(Native.java:697)
    at com.sun.jna.Native.<clinit>(Native.java:127)
    at org.netbeans.modules.masterfs.watcher.linux.LinuxNotifier.<init>(LinuxNotifier.java:103)
    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:525)
    at java.lang.Class.newInstance0(Class.java:372)
    at java.lang.Class.newInstance(Class.java:325)


This could happen if there is already a  "/tmp/jna" directory present, and not owned by the user starting the netbeans instance.
The jna library is extracted in directory pointed by 'java.io.tmpdir' system property, which on Unix is /tmp by default.
This is a problem when multiple users are concerned, as only one can own the '/tmp/jna' directory.

To fix it, instead of the recommended '-J-Djna.nosys=true', try '-J-Djava.io.tmpdir=$HOME' , so that the jna directory gets created in the user's home directory.

Using '-J-Djava.io.tmpdir=$HOME' helped me solve the issue on my box.
Comment 5 Stanislav Aubrecht 2012-05-31 07:53:54 UTC

*** This bug has been marked as a duplicate of bug 212938 ***