Gå til innhold

[Løst] Class.forname feiler i Netbeans


Anbefalte innlegg

Følgende kode kjører fint ved bruk av javac / java fra kommandolinje. Men i Netbeans kaster linja c = Class.forName("Test") konsekvent en ClassNotFoundException. Den fremviste koden er resultatet av debug av en større kode og snevret inn til det minimale som vil reprodusere feilen. Class.forName feiler tilsynelatende uansett i hvilken sammenheng den brukes i Netbeans.

 

Jeg kjører:

NetBeans IDE 7.1 (Build 201112071828)

Java: 1.7.0_02; Java HotSpot Client VM 22.0-b10

 

JDK og Netbeans ble lastet ned i en samlet pakke. Jeg er derfor ganske sikker på at java / javac fra kommandolinje kjører fra samme installasjon som Netbeans.

 

Koden lar seg heller ikke fra .jar generert av Netbeans.

 

Netbeans er jo et kjekt verktøy å skrive i, så kunne vært kjekt om koden også lot seg kjøre der. Jeg finner mange som har rapportert et tilsvarende problem, men de har ikke vært så spesifike, og alle har vært på eldre versjoner av Netbeans.

 

Er det noen som har forslag til løsning på dette?

Kan dette være et 32/64bit problem? Jeg sitter med 64bit.

Kan noen ta seg bryet med å prøve samme kode i sin netbeansinstallasjon for å se om det samme problemet gjelder der?

 

 

public class TestForname {
public TestForname() {
	Class c;
	Test t;
	try {
		c = Class.forName("Test");
		t = (Test)c.newInstance();
	}
	catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
		System.out.println(e);
		e.printStackTrace();
	}
}

   public static void main(String[] args) {
       TestForname t = new TestForname();
   }
}

 

public class Test {
   public Test() {
       int i = 3;
       System.out.println(i);
   }
}

 

Resultatet ved kjøring i netbeans ser slik ut:

java.lang.ClassNotFoundException: Test
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:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at testforname.TestForname.<init>(TestForname.java:17)
at testforname.TestForname.main(TestForname.java:29)

Lenke til kommentar
Videoannonse
Annonse

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...