Hi All
I have lost track of the jar creation process in the examples
module. Everytime before commiting I have executed examples using Eclipse
IDE which ran successfully. I need to modify the examples module. Sorry for
any inconvenience. Please find my additional responses below.
>There are issues with the expected functionality of the "examples-ga"
module.
>Assuming that the following command has been issued
> $ JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ mvn package
>and has completed successfully, executable JAR files should have been
>created under the "target" directories.
>For example, issuing this command (example for the "neuralnet" module):
> $ java -jar
commons-math-examples/examples-sofm/tsp/target/examples-sofm-tsp.jar
>outputs
>---CUT---
>Missing required option '-o=outputFile'
>Usage: <main class> [-hV] [-j=numJobs] [-m=maxTrials] [-n=neuronsPerCity]
> -o=outputFile [-s=numSamples]
>Run the application
> -h, --help Show this help message and exit.
> -j=numJobs Number of concurrent tasks (default: 8).
> -m=maxTrials Maximal number of trials (default: 10).
> -n=neuronsPerCity Average number of neurons per city (default: 2.2).
> -o=outputFile Output file name.
> -s=numSamples Number of samples for the training (default: 2000).
> -V, --version Print version information and exit.
>---CUT---
>The above thus shows that the program runs as expected (passing the missing
>required argument produces the expected output file).
>Doing the equivalent for the new examples, e.g.
> $ java -jar
commons-math-examples/examples-ga/examples-ga-tsp/target/examples-ga-mathfunctions.jar
>results in
>---CUT---
>Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load
>library: /usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so
> at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2630)
> at java.base/java.lang.Runtime.load0(Runtime.java:768)
> at java.base/java.lang.System.load(System.java:1837)
> at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
> at
java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2442)
> at
java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2498)
> at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694)
> at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2648)
> at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:830)
> at java.base/java.lang.System.loadLibrary(System.java:1873)
> at java.desktop/java.awt.Toolkit$3.run(Toolkit.java:1399)
> at java.desktop/java.awt.Toolkit$3.run(Toolkit.java:1397)
> at java.base/java.security.AccessController.doPrivileged(Native Method)
> at java.desktop/java.awt.Toolkit.loadLibraries(Toolkit.java:1396)
> at java.desktop/java.awt.Toolkit.<clinit>(Toolkit.java:1429)
> at java.desktop/java.awt.Component.<clinit>(Component.java:621)
> at
org.apache.commons.math4.examples.ga.tsp.TSPOptimizer.main(TSPOptimizer.java:62)
>---CUT---
>[Please note that the name of the JAR also looks wrong (a copy/paste
mistake?).]
--There is an issue in the jar file name. But in my system the TSP
application executed successfully. The commands I have executed are given
below:
$ mvn package
$ java -jar examples-ga-mathfunctions.jar
JDK version in my local system is "1.8.0_301"
--In the mvn command specified by you JAVA_HOME is assigned as
"/usr/lib/jvm/java-8-openjdk-amd64/" but during execution of jar it is
using java-11 Could you please confirm what is the JDK version used and
ensure same version is used for both. This issue usually comes if the JDK
is not properly installed.
>Command
> $ java -jar
commons-math-examples/examples-ga/examples-ga-math-functions/target/examples-ga-mathfunctions.jar
>also fails, with the following error
>---CUT---
>Error: Could not find or load main class
>org.apache.commons.math4.examples.ga.mathfunctions.Dimension2FunctionOptimizer
>Caused by: java.lang.ClassNotFoundException:
>org.apache.commons.math4.examples.ga.mathfunctions.Dimension2FunctionOptimizer
>---CUT---
-- This is due to the wrong package name. I introduced a sub package based
on dimension but forgot to modify the same in the pom file.
>I noticed that there is an example relating to "Dimension2" and another
>to "DimensionN". Isn't the former, in principle, a special case of the
latter?
--Yes, the former is the special case of the latter. But the way the
executable jar is generated I need to keep a single java file with the main
method and the number of dimensions needs to be passed as a program
argument.
--I shall make the changes and create a PR for the new feature branch.
Thanks & Regards
--Avijit Basak
On Sun, 9 Jan 2022 at 01:01, Gilles Sadowski <[email protected]> wrote:
> Hello.
>
> I've also started to take a look.
>
> There are issues with the expected functionality of the "examples-ga"
> module.
>
> Assuming that the following command has been issued
> $ JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ mvn package
> and has completed successfully, executable JAR files should have been
> created under the "target" directories.
>
> For example, issuing this command (example for the "neuralnet" module):
> $ java -jar
> commons-math-examples/examples-sofm/tsp/target/examples-sofm-tsp.jar
> outputs
> ---CUT---
> Missing required option '-o=outputFile'
> Usage: <main class> [-hV] [-j=numJobs] [-m=maxTrials] [-n=neuronsPerCity]
> -o=outputFile [-s=numSamples]
> Run the application
> -h, --help Show this help message and exit.
> -j=numJobs Number of concurrent tasks (default: 8).
> -m=maxTrials Maximal number of trials (default: 10).
> -n=neuronsPerCity Average number of neurons per city (default: 2.2).
> -o=outputFile Output file name.
> -s=numSamples Number of samples for the training (default: 2000).
> -V, --version Print version information and exit.
> ---CUT---
>
> The above thus shows that the program runs as expected (passing the missing
> required argument produces the expected output file).
>
> Doing the equivalent for the new examples, e.g.
> $ java -jar
> commons-math-examples/examples-ga/examples-ga-tsp/target/examples-ga-mathfunctions.jar
> results in
> ---CUT---
> Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load
> library: /usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so
> at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2630)
> at java.base/java.lang.Runtime.load0(Runtime.java:768)
> at java.base/java.lang.System.load(System.java:1837)
> at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
> at
> java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2442)
> at
> java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2498)
> at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694)
> at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2648)
> at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:830)
> at java.base/java.lang.System.loadLibrary(System.java:1873)
> at java.desktop/java.awt.Toolkit$3.run(Toolkit.java:1399)
> at java.desktop/java.awt.Toolkit$3.run(Toolkit.java:1397)
> at java.base/java.security.AccessController.doPrivileged(Native Method)
> at java.desktop/java.awt.Toolkit.loadLibraries(Toolkit.java:1396)
> at java.desktop/java.awt.Toolkit.<clinit>(Toolkit.java:1429)
> at java.desktop/java.awt.Component.<clinit>(Component.java:621)
> at
> org.apache.commons.math4.examples.ga.tsp.TSPOptimizer.main(TSPOptimizer.java:62)
> ---CUT---
>
> [Please note that the name of the JAR also looks wrong (a copy/paste
> mistake?).]
>
> Command
> $ java -jar
> commons-math-examples/examples-ga/examples-ga-math-functions/target/examples-ga-mathfunctions.jar
> also fails, with the following error
> ---CUT---
> Error: Could not find or load main class
>
> org.apache.commons.math4.examples.ga.mathfunctions.Dimension2FunctionOptimizer
> Caused by: java.lang.ClassNotFoundException:
>
> org.apache.commons.math4.examples.ga.mathfunctions.Dimension2FunctionOptimizer
> ---CUT---
>
> I noticed that there is an example relating to "Dimension2" and another
> to "DimensionN". Isn't the former, in principle, a special case of the
> latter?
>
>
> Regards,
> Gilles
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
--
Avijit Basak