Hi Geertjan Thank you for your email. I tried it out in a few ways.
Test 1 I build my test app which looks almost identical to yours. I set project properties to use JDK-11 for both source and build I found the application built and ran within the Netbeans environment with Netbeans 10vc2 using the *--jdkhome* set to running on JDK-11. Test 2 I also tried running the jar file in the dist folder from the command line. *prompt> <path-to>/jdk-11/bin/java -jar dist/JavaApplicationXXII.jar* That gave an error message *Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/logging/log4j/LogManager at javaapplicationXXII.JavaApplicationXXII.<clinit>(JavaApplicationXXII.java:17)Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.LogManager at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ... 1 more* Test 3 I also tried to build the application with jlink packaging. This may not be an error: I do not know if one is permitted to use an automatic module in a jlink packaged build. During the clean & build, the following error line appeared at the end of the clean & build process ...* <*snip> ... *Error: automatic module cannot be used with jlink: org.apache.logging.log4j.core from file:///<path-to>/Log4j2/apache-log4j-2.11.1-bin/log4j-core-2.11.1.jarResult: 1* *-post-deploy:deploy:jar:BUILD SUCCESSFUL (total time: 1 second)* I hope there is enough information to be useful. Please ask if you would like me to provide more. Regards Emma On Wed, 31 Oct 2018 at 09:05, Geertjan Wielenga < geertjan.wiele...@googlemail.com> wrote: > For me, it works, I can use the module-path, together with this in > module-info: > > module org.mycompany { > requires org.apache.logging.log4j; > } > > And this in the Java source file: > > import org.apache.logging.log4j.LogManager; > import org.apache.logging.log4j.Logger; > public class MyApp { > public static final Logger LOGGER = LogManager.getLogger(); > public static void main(String[] args) { > LOGGER.error("\n *** Log4j2 error message\n"); > } > } > > With the JAR on the module-path. > > Thanks, > > Gj > > > On Wed, Oct 31, 2018 at 9:51 AM Geertjan Wielenga < > geertjan.wiele...@googlemail.com> wrote: > >> Hi Emma, >> >> Please confirm that your scenario works now in 10vc2: >> >> https://cwiki.apache.org/confluence/display/NETBEANS/10vc2 >> >> Gj >> >> On Thu, Oct 4, 2018 at 11:56 AM Emma Atkinson <emma.atkins...@gmail.com> >> wrote: >> >>> Hey guys, >>> What a lovely surprise! I was just about to begin working out the >>> command line options. >>> >>> I'll take a look at the pull request to see if I can learn something. >>> >>> Thank you (Denk u wel) >>> Emma >>> >>> On 08:11, Thu, 4 Oct 2018 Geertjan Wielenga, >>> <geertjan.wiele...@googlemail.com.invalid> wrote: >>> >>>> https://github.com/apache/incubator-netbeans/pull/941 >>>> >>>> We've identified the problem and done work on fixing it. >>>> >>>> Gj >>>> >>>> On Wed, Oct 3, 2018 at 1:55 PM Emma Atkinson <emma.atkins...@gmail.com> >>>> wrote: >>>> >>>>> I will try without using Netbeans but I do not have time to work on >>>>> this until tomorrow. >>>>> Thank you for devoting your time to helping me solve this. >>>>> >>>>> Emma >>>>> >>>>> >>>>> On Wed, 3 Oct 2018 at 12:29, Geertjan Wielenga < >>>>> geertjan.wiele...@googlemail.com> wrote: >>>>> >>>>>> Well, I'd suggest to first get it to work without any tooling at all. >>>>>> I.e., forget NetBeans for the moment and use the command line to set up a >>>>>> simple Java 9 multi-release app that makes use of Log4J. Possibly the >>>>>> problem is with Log4J and that's what you can find out by creating such >>>>>> an >>>>>> application and for help you could join the Log4J mailing list. I.e., if >>>>>> something doesn't work outside NetBeans it won't work within NetBeans >>>>>> either. >>>>>> >>>>>> Gj >>>>>> >>>>>> >>>>>> On Wed, Oct 3, 2018 at 1:13 PM Emma Atkinson < >>>>>> emma.atkins...@gmail.com> wrote: >>>>>> >>>>>>> Screenshot.png shows how I have set up Netbeans. I think you can >>>>>>> see everything. >>>>>>> >>>>>>> I normally use the *import* org.apache.logging.log4j.Logger and >>>>>>> *import* org.apache.logging.log4j.LogManager. The Log4j2 >>>>>>> module-info.class file exports *org.apache.logging.log4j*. >>>>>>> >>>>>>> I have committed a version of the test case with the word logging >>>>>>> deleted. And then returned it to what I think is correct in the >>>>>>> subsequent >>>>>>> commit. >>>>>>> I have tried it every way, with and without the classpath entries. >>>>>>> BTW adding a jar to both the modulepath and classpath has been a bit hit >>>>>>> and miss (ignoring adding log4j-api.jar if it is already on the >>>>>>> modulepath) >>>>>>> so I used a Library entry for the module path and explicitly added the >>>>>>> jars >>>>>>> to the classpath. >>>>>>> >>>>>>> Adding the classpath entries with >>>>>>> *import* org.apache.logging.log4j.Logger >>>>>>> *import* org.apache.logging.log4j.LogManager >>>>>>> >>>>>>> means the editor finds the classes Logger and LogManager as you >>>>>>> would expect. >>>>>>> The Compile File error message is that it cannot find the module >>>>>>> log4j.api. >>>>>>> https://github.com/cosmiczoo/Log4j2TestCase latest commit is as >>>>>>> close as I can get. >>>>>>> >>>>>>> >>>>>>> On Wed, 3 Oct 2018 at 11:15, Geertjan Wielenga >>>>>>> <geertjan.wiele...@googlemail.com.invalid> wrote: >>>>>>> >>>>>>>> I also see this on >>>>>>>> https://logging.apache.org/log4j/2.0/download.html: >>>>>>>> >>>>>>>> To use Log4j 2 in your application make sure that both the API and >>>>>>>> Core jars are in the application’s classpath. Add the dependencies >>>>>>>> listed >>>>>>>> below to your classpath. >>>>>>>> >>>>>>>> >>>>>>>> 1. log4j-api-2.11.1.jar >>>>>>>> 2. log4j-core-2.11.1.jar >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> In short, we need instructions for how exactly to set up the >>>>>>>> project to match the environment that you have. >>>>>>>> >>>>>>>> Gj >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Wed, Oct 3, 2018 at 12:11 PM Geertjan Wielenga < >>>>>>>> geertjan.wiele...@googlemail.com> wrote: >>>>>>>> >>>>>>>>> Shouldn't the import statements be this: >>>>>>>>> >>>>>>>>> import org.apache.log4j.LogManager; >>>>>>>>> import org.apache.log4j.Logger; >>>>>>>>> >>>>>>>>> ...and not this: >>>>>>>>> >>>>>>>>> import org.apache.logging.log4j.LogManager; >>>>>>>>> import org.apache.logging.log4j.Logger; >>>>>>>>> >>>>>>>>> ...if you're using log4j-1.2-api-2.11.1.jar? >>>>>>>>> >>>>>>>>> Gj >>>>>>>>> >>>>>>>>> >>>>>>>>> On Wed, Oct 3, 2018 at 11:56 AM Emma Atkinson < >>>>>>>>> emma.atkins...@gmail.com> wrote: >>>>>>>>> >>>>>>>>>> I cannot find a way to make this work, I hope you can help. I >>>>>>>>>> should be happy to be pointed to an existing answer >>>>>>>>>> >>>>>>>>>> *The Problem* >>>>>>>>>> I have a very simple Java application demonstrating the problem I >>>>>>>>>> am having with using the latest Log4j2 V2.11.1 as a module >>>>>>>>>> (log4j.api) and >>>>>>>>>> building it in Netbeans. The example compiles, builds and runs when >>>>>>>>>> I use >>>>>>>>>> the classpath, but cannot compile the module-info.java file when I >>>>>>>>>> use the >>>>>>>>>> modulepath. I have uploaded the code and Netbeans files at the >>>>>>>>>> following >>>>>>>>>> link: >>>>>>>>>> >>>>>>>>>> https://github.com/cosmiczoo/Log4j2TestCase >>>>>>>>>> >>>>>>>>>> Log4j2 V2.11.1 is a Multi-release JAR (MR-JAR). The >>>>>>>>>> module-info.class file is in log4j-api-2.11.1.jar under the folder >>>>>>>>>> META-INF/versions/9, which seems correct. >>>>>>>>>> >>>>>>>>>> The Netbeans editor can see the module log4j.api because it >>>>>>>>>> appears in the drop-down menu of completion suggestions and does not >>>>>>>>>> have >>>>>>>>>> wiggly red line under it. My simple test program has a >>>>>>>>>> module-info.java >>>>>>>>>> file that requires log4j.api and nothing else. This bit works as I >>>>>>>>>> would >>>>>>>>>> expect. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> I have located an unanswered question on StackOverflow asking a >>>>>>>>>> similar question >>>>>>>>>> https://stackoverflow.com/questions/50568139/netbeans-java-9-modules-log4j-2-11-module-not-found >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> *To Reproduce My Test * >>>>>>>>>> >>>>>>>>>> I *Clean* the project. It completes successfully. >>>>>>>>>> I then use a RMB option to *Compile File* the module-info.java >>>>>>>>>> file. >>>>>>>>>> This generates an error pointing to the line *requires log4j.api* >>>>>>>>>> in my module-info.java. >>>>>>>>>> >>>>>>>>>> <path-to>/Log4j2TestCase/src/module-info.java:7: error: module >>>>>>>>>> not found: log4j.api >>>>>>>>>> requires log4j.api; >>>>>>>>>> 1 error >>>>>>>>>> ZipFileIndex clearCache failed >>>>>>>>>> <path-to>/Log4j2TestCase/nbproject/build-impl.xml:1131: The >>>>>>>>>> following error occurred while executing this line: >>>>>>>>>> <path-to>/Log4j2TestCase/nbproject/build-impl.xml:358: Compile >>>>>>>>>> failed; see the compiler error output for details. >>>>>>>>>> at >>>>>>>>>> org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:1425) >>>>>>>>>> at >>>>>>>>>> org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:1133) >>>>>>>>>> at >>>>>>>>>> org.netbeans.modules.java.source.ant.JavacTask.execute(JavacTask.java:120) >>>>>>>>>> at >>>>>>>>>> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292) >>>>>>>>>> >>>>>>>>>> and so on. Please let me know if you want more. >>>>>>>>>> >>>>>>>>>> I have tried building this program under JDK-9, JDK-10 and >>>>>>>>>> JDK-11. My Netbeans runs on JDK-10. I am learning how to migrate to >>>>>>>>>> modules by trial, error and reading. I may have made an error, but >>>>>>>>>> if I >>>>>>>>>> have, I don't know where. >>>>>>>>>> >>>>>>>>>> Thanks in anticipation >>>>>>>>>> >>>>>>>>>> Emma >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>