I am trying to compile a java application that is made up of several external jars (xerces, log4j and others) plus some internally developed. Since I can't compile with jars in the command line (bug 14212) I decided to create shared libraries from some of the jars. I picked xerces_2_5_0 and used the following command line: drwx------ 23 acuser acuser 4096 Feb 10 15:22 .. drwxr-xr-x 2 acuser acuser 4096 Feb 9 16:16 data drwxr-xr-x 6 acuser acuser 4096 Feb 9 16:16 docs -rw-r--r-- 1 acuser acuser 2698 Jul 31 2003 LICENSE -rw-r--r-- 1 acuser acuser 5345 Jul 31 2003 LICENSE-DOM.html -rw-r--r-- 1 acuser acuser 419 Jul 31 2003 LICENSE-SAX.html -rw-r--r-- 1 acuser acuser 814 Jul 31 2003 Readme.html drwxr-xr-x 8 acuser acuser 4096 Jul 31 2003 samples -rw-r--r-- 1 acuser acuser 927669 Jul 31 2003 xercesImpl.jar -rw-r--r-- 1 acuser acuser 121686 Jul 31 2003 xercesSamples.jar -rw-r--r-- 1 acuser acuser 123705 Jul 31 2003 xml-apis.jar -rw-r--r-- 1 acuser acuser 123705 Jul 31 2003 xmlParserAPIs.jar [acuser@fedora xerces-2_5_0]$ gcj -shared -o xerces.so *.jar org/apache/xerces/util/DOMUtil.java: In class `org.apache.xerces.util.DOMUtil': org/apache/xerces/util/DOMUtil.java: In method `org.apache.xerces.util.DOMUtil.copyInto(org.w3c.dom.Node,org.w3c.dom.Node)': org/apache/xerces/util/DOMUtil.java:0: error: cannot find file for class org.w3c.dom.events.EventTarget org/apache/xerces/util/DOMUtil.java:0: error: cannot find file for class org.w3c.dom.events.DocumentEvent org/apache/xerces/util/DOMUtil.java:0: error: cannot find file for class org.w3c.dom.events.DocumentEvent org/apache/xerces/util/DOMUtil.java:0: confused by earlier errors, bailing out [acuser@fedora xerces-2_5_0]$ I did the same with log4j with same results. [acuser@fedora lib]$ ls log4j-1.2.9.jar [acuser@fedora lib]$ cc -o shared [acuser@fedora lib]$ gcj gcj: no input files [acuser@fedora lib]$ gcj --shared -o log4j.so *jar org/apache/log4j/chainsaw/LoadXMLAction.java: In class `org.apache.log4j.chainsaw.LoadXMLAction': org/apache/log4j/chainsaw/LoadXMLAction.java: In constructor `(javax.swing.JFrame,org.apache.log4j.chainsaw.MyTableModel)': org/apache/log4j/chainsaw/LoadXMLAction.java:43: error: cannot find file for class javax.xml.parsers.SAXParserFactory org/apache/log4j/chainsaw/LoadXMLAction.java:43: error: cannot find file for class javax.xml.parsers.SAXParserFactory org/apache/log4j/chainsaw/LoadXMLAction.java:43: error: cannot find file for class javax.xml.parsers.SAXParser org/apache/log4j/chainsaw/LoadXMLAction.java:68: error: cannot find file for class javax.xml.parsers.SAXParserFactory org/apache/log4j/chainsaw/LoadXMLAction.java:68: confused by earlier errors, bailing out
Subject: Re: New: fail to create shared lib from jar - 2 instances, xerces and log4 Hi, On Thu, 2005-02-10 at 22:08 +0000, delarosa at ilstechnology dot com wrote: > [acuser@fedora xerces-2_5_0]$ gcj -shared -o xerces.so *.jar > org/apache/xerces/util/DOMUtil.java: In class `org.apache.xerces.util.DOMUtil': > org/apache/xerces/util/DOMUtil.java: In method > `org.apache.xerces.util.DOMUtil.copyInto(org.w3c.dom.Node,org.w3c.dom.Node)': > org/apache/xerces/util/DOMUtil.java:0: error: cannot find file for class > org.w3c.dom.events.EventTarget > org/apache/xerces/util/DOMUtil.java:0: error: cannot find file for class > org.w3c.dom.events.DocumentEvent > org/apache/xerces/util/DOMUtil.java:0: error: cannot find file for class > org.w3c.dom.events.DocumentEvent > org/apache/xerces/util/DOMUtil.java:0: confused by earlier errors, bailing out The new org.w3c.dom.events packages were recently added to gcc 4.0 (CVS). Could you retry with a CVS version? > [acuser@fedora lib]$ gcj --shared -o log4j.so *jar > org/apache/log4j/chainsaw/LoadXMLAction.java: In class > `org.apache.log4j.chainsaw.LoadXMLAction': > org/apache/log4j/chainsaw/LoadXMLAction.java: In constructor > `(javax.swing.JFrame,org.apache.log4j.chainsaw.MyTableModel)': > org/apache/log4j/chainsaw/LoadXMLAction.java:43: error: cannot find file for > class javax.xml.parsers.SAXParserFactory > org/apache/log4j/chainsaw/LoadXMLAction.java:43: error: cannot find file for > class javax.xml.parsers.SAXParserFactory > org/apache/log4j/chainsaw/LoadXMLAction.java:43: error: cannot find file for > class javax.xml.parsers.SAXParser > org/apache/log4j/chainsaw/LoadXMLAction.java:68: error: cannot find file for > class javax.xml.parsers.SAXParserFactory > org/apache/log4j/chainsaw/LoadXMLAction.java:68: confused by earlier errors, > bailing out Same for the javax.xml.parsers package.
Sorry for the dumb question. Where do I get the binaries for version 4. I assume that you meant gcc 4.0 right ? Any pointer are appreciated.
(In reply to comment #2) > Sorry for the dumb question. Where do I get the binaries for version 4. I assume > that you meant gcc 4.0 right ? Any pointer are appreciated. See: http://gcc.gnu.org/cvs.html for how to get the latest sources from the GCC CVS repository. On a modern Linux system, it's rather easy to compile GCC from sources. Just be sure to use a build folder separate from the source folder. For example, I use the following configuration command: $GCC_SRC_DIR/configure --prefix=$HOME/gcc --enable-languages=c,c++,java \ --disable-nls --disable-checking --disable-libmudflap \ --disable-debug --enable-threads=posix --enable-__cxa_atexit and then "make bootstrap" followed by "make install" from within the build folder. (You'll have to tweak the command line above to suit your setup.) Once you've built and installed this, you should see "How to BC compile with GCJ" in the GCC Wiki: http://gcc.gnu.org/wiki/How%20to%20BC%20compile%20with%20GCJ Hope this helps, Ranjit.
No feedback in over 6 months.