Other [SOLVED] I have an error when I try to compile my B4A library

Justcooldev

Member
Licensed User
Hi,

I'm making a library for b4a, but I have a problem : when I try to compile my project (with Simple Library Compiler or the Link), I have this error :
B4X:
Starting step: Compiling Java code.
javac 14.0.1

Completed successfully.
Starting step: Creating jar file.
Completed successfully.
Starting step: Creating XML file.
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/javadoc/Doclet
    at java.base/java.lang.ClassLoader.defineClass1(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:151)
    at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:514)
    at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:422)
    at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:416)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:691)
    at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:415)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    at jdk.javadoc/jdk.javadoc.internal.tool.Start.loadDocletClass(Start.java:758)
    at jdk.javadoc/jdk.javadoc.internal.tool.Start.preprocess(Start.java:727)
    at jdk.javadoc/jdk.javadoc.internal.tool.Start.begin(Start.java:374)
    at jdk.javadoc/jdk.javadoc.internal.tool.Start.begin(Start.java:342)
    at jdk.javadoc/jdk.javadoc.internal.tool.Main.execute(Main.java:63)
    at jdk.javadoc/jdk.javadoc.internal.tool.Main.main(Main.java:52)
Caused by: java.lang.ClassNotFoundException: com.sun.javadoc.Doclet
    at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:435)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 16 more

Error.

If someone have an solution for this, it could help me.

Thanks in advance
 

agraham

Expert
Licensed User
Longtime User
You are using Java 14. You need to use Java 8 with SLC, or more strictly with BADoclet. Erel says
There are no immediate plans to make SLC support Java 11. This requires a complete rewrite of the doclet tool and I don't find it to be too limiting to require Java 8 to be installed when using SLC.
SLC uses the Java version chosen in the B4A IDE so you need to install Java 8 and select it as the compiler in the IDE.
 

Justcooldev

Member
Licensed User
You are using Java 14. You need to use Java 8 with SLC, or more strictly with BADoclet. Erel says

SLC uses the Java version chosen in the B4A IDE so you need to install Java 8 and select it as the compiler in the IDE.
thank you so much !!
You solved my problem, i reinstalled JDK 8.
 
Top