TurboJ
Hi, Has anyone tried TurboJ from the opengroup yet ? (it's available for download but needs a license key). It's supposed to work with the Blackdown ports and compiles .class to .c files and uses JNI to make calls into the JVM. The benchmarks posted seem nice. Marcel
Re: Bug in AWT event handling ?
On Mon, Jun 29, 1998 at 11:03:05AM +0200, Stefan Poppe wrote: > Hello, > > I'd like to report what I consider a bug in AWT event handling: > > Create a Canvas and enable MouseEvents for it. Clicking on this canvas > delivers > three MouseEvents to the method processMouseEvent: one for MOUSE_DOWN, > one for > MOUSE_RELEASED, and one for MOUSE_CLICKED. The getModifiers() method of > these > events returns an int which stands for e.g. the mouse button you used. > If you use > button 1 the modifier of the MOUSE_DOWN is 0 whereas the modifiers of > MOUSE_RELEASED and MOUSE_CLICKED is 16 (which is correct for > BUTTON1_MASK). If > you use button 2 or 3 all modifiers have the correct value. This happens > with version 1.1.5v_5 and 1.1.6_v1, > > If anybody knows a workaround for the first problem please tell me how > to do it. Yep, ran into this one also. Found this in the Swing libraries: public static boolean isLeftMouseButton(MouseEvent anEvent) { return ((anEvent.getModifiers() & InputEvent.BUTTON1_MASK) == InputEvent.BUTTON1_MASK || (anEvent.getModifiers() == 0)); /*PENDING(ARNAUD) this is to workaround a bug on Solaris */ } Seems like it is not only a Bug on Solaris though:) Marcel Ammerlaan
problems with finalize()
Hello, I have a problem with jdk1.1.6v3a/glibc2. The problem is with the finalize() methods which does not get invoked in my code. Jdk1.1.5v7/glibc2 works fine (ie. the finalize() method is called). Anyone got any idea why? (I tried to create a small example which shows the problem but finalize() get's called for the small example:( Marcel Ammerlaan -- "Yields falsehood when preceded by its quotation" yields falsehood when preceded by its quotation
Re: problems with finalize()
[EMAIL PROTECTED] wrote ([EMAIL PROTECTED]) > Hello, > > I have a problem with jdk1.1.6v3a/glibc2. The problem is with > the finalize() methods which does not get invoked in my code. > Jdk1.1.5v7/glibc2 works fine (ie. the finalize() method is called). > Anyone got any idea why? > (I tried to create a small example which shows the problem > but finalize() get's called for the small example:( Some additional information might be in order.. I force the finalizers to be run using System.runFinalizersOnExit(true) so I expect that, even though finalization might not run immediately, it should run when the VM exits.. Marcel -- "Yields falsehood when preceded by its quotation" yields falsehood when preceded by its quotation
Re: problems with finalize()
peter johnson wrote ([EMAIL PROTECTED]) > [EMAIL PROTECTED] wrote: > > [EMAIL PROTECTED] wrote ([EMAIL PROTECTED]) > > > Hello, > > > > > > I have a problem with jdk1.1.6v3a/glibc2. The problem is with > > > the finalize() methods which does not get invoked in my code. > > > Jdk1.1.5v7/glibc2 works fine (ie. the finalize() method is called). > > > Anyone got any idea why? > > > (I tried to create a small example which shows the problem > > > but finalize() get's called for the small example:( > > > > Some additional information might be in order.. > > I force the finalizers to be run using System.runFinalizersOnExit(true) > > so I expect that, even though finalization might not run immediately, > > it should run when the VM exits.. > > Try running System.gc() after all references to the object are null. This > should force the finalizer to run. > hopr this helps I've tries this (have a seperate thread call System.gc() every 2 seconds. This same thread also runs System.runFinalization()) but it doesn't help. As my application depends on finalizers being run I'm stuck with jdk1.1.5 for now... Marcel Ammerlaan
Servlets/Apache/Linux: works fine (HowTo install)
Hi, we use the Apache/Servlet, no problems with it. Here some hints how we installed it (not nice, but it works): Install Servlet Development Kit (needed by apache) http://java.sun.com/products/servlet/index.html Download -> /usr/local/jsdk20-solaris2-sparc.tar.Z uncompress jsdk20-solaris2-sparc.tar.Z tar xvf jsdk20-solaris2-sparc.tar ln -s JSDK2.0 jsdk cd /usr/local/jsdk/lib mkdir classes cp jsdk.jar /usr/local/apache/classes apache installation on Redhat 5.1 Linux: www.apache.org/java: download jserv0.9.11.tar.gz www.apache.org: download apache_1.3.3.tar.gz cd /usr/local tar zxvf jserv0.9.11.tar.gz tar zxvf apache_1.3.3.tar.gz cd jserv0.9.11 make cp mod_jserv.c ../apache_1.3.3/src/modules/extra/ /usr/local/apache_1.3.3 vi src/Configuration.tmpl add line: -> AddModule modules/extra/mod_jserv.o ./configure --prefix=/usr/local/apache make setenv JSERV_PATH /usr/local/jserv setenv CLASSPATH ${CLASSPATH}:$JSERV_PATH/servclasses.zip:$JSERV_PATH/src As root: make install Edit: /usr/local/apache/etc/{httpd,access,srm}.conf in httpd.conf add lines: Options +ExecCGI ServletBinary /usr/local/jdk/bin/java ServletClassPath /usr/local/apache/classes/classes.zip ServletClassPath /usr/local/apache/classes/jsdk.jar #Log path relative to server root ServletErrorLog /usr/local/apache/servlet.log #Internal communications port for Servlet<->Apache comms ServletPort 9091 ServletProperties ./etc/servlet.properties ServletAlias /servlets /usr/local/apache/share/servlets/ in access.conf add: AllowOverride None Options +ExecCGI AllowOverride None Options +ExecCGI in srm.conf add: DocumentRoot /usr/local/apache/share # Uncomment the following line to enable Apache's Servlet operation AddHandler java-servlet .class cp /usr/local/jserv/servlet.properties /usr/local/apache/etc/servlet.properties: servlets.default.initArgs=DefaultTemplDir=/usr/local/apache/share/templates/ mkdir -p /usr/local/apache/share/servlets -> insert your servlets cd /usr/local/apache/sbin; ./apachectl restart check log files: cd /usr/local/apache/var/log; tail -f error_log; tail -f access_log cd /usr/local/apache; tail -f servlet.log Marcel -- Marcel Ruff [EMAIL PROTECTED] http://www.lake.de/home/lake/swand/
How to get VisiBroker for Java on Linux running?
Hi, 1) I tried running our CORBA-VisiBroker stuff on Linux, it compiles well, but my clients and servers can't find the Naming Service running on a AIX box (with a running osagent/gatekeeper) How does this URL-naming look like ??? The same code runs well if invoked on AIX. 2) I tried running the JacORB example1 with the VisiBroker NamingServer using the URL naming from JacORB: The JacORB server connects to the VisiBroker Naming Service, but stops then with an Exception. It seems there is a missmatch in the IIOP protocol? Any expirences with that? Thanks, Marcel PS: In fact i only want to develop on Linux, but keep the code portable to work with VisiBroker as well. -- Marcel Ruff [EMAIL PROTECTED] http://www.lake.de/home/lake/swand/
Re: How to get VisiBroker for Java on Linux running? Thanks, it runs now!
Armen Yampolsky wrote: Hi, In my experience, clients/servers running on a Linux box have trouble finding the osagent. If you haven't already, try adding ORBagentAddr= to the VM System Properties, either using the -D flag, or directly in code. Not clear why one needs that darned osagent when using the CosNaming service, though, whatever. I have had few troubles developing and running on Linux, and using some dummy NT or Solaris box with just the osagent running on it. But these days, we're all much happier using omniORB2/JavaIDL. The only thing I noticed when playing with JacORB is that the idl->java generated files seem to be different. In fact, I don't thing the Sun, JacORB, and Visigenic generated files are compatible. You may want to check things like the constructors for the ORB, the BOA, etc. Often they aren't compatible. Good Luck, -Armen > 1) > I tried running our CORBA-VisiBroker stuff on Linux, > it compiles well, but my clients and servers can't find > the Naming Service running on a AIX box (with a running > osagent/gatekeeper) > How does this URL-naming look like ??? > The same code runs well if invoked on AIX. > > 2) > I tried running the JacORB example1 with the VisiBroker NamingServer > using the URL naming from JacORB: > The JacORB server connects to the VisiBroker Naming Service, > but stops then with an Exception. It seems there is a missmatch in the > IIOP protocol? > > Any expirences with that? -- Armen Yampolsky Axiom Software Labs New York Thanks for your help, VisiBroker runs now fine on Linux with the osagent running on a AIX Box. But it's true, JacORB and VisiBroker aren't very friendly to each other, so the CORBA code is not protable at all :-( The big CORBA world never tells this! I used omniORB for C++ in a former project, i liked it very much as well! Is JAVA-IDL running on linux??? Well, thanks again, Marcel -- Marcel Ruff [EMAIL PROTECTED] http://www.lake.de/home/lake/swand/
Java-VisiBroker CORBA on Linux with Blackdown Java 1.16/1.17 Howto
Hi, after some mails about VisiBroker, here are some hints how to run VisiBroker on Linux: 1) Everything from VisiBroker runs fine on Linux (pure Java), but not the osagent process which is nativ binary (and not supported on Linux) 2) if you don't use the name server and don't run the gatekeeper, you don't need the osagent and you can use a standalone Linux box. You need then the URL naming scheme, - the server emits his IOR string, the client grabs and narrows it to use it. 3) if you want to start the gatekeeper (or naming service) on Linux, you need to have an osagent running somewhere on the network (on a NT, AIX, Sun or another supported platfom) Specify on your Linuxbox where to find the osagent: a) For example, that's how i start the name server (similar i start my servers) java -DORBagentAddr=192.168.200.8 -DORBagentPort=14000 -DORBservices=CosNaming -DSVCnameroot=CorbaJava -DJDKrenameBug com.visigenic.vbroker.services.CosNaming.ExtFactory CorbaJava nameLog b) Servlets (jserv module with apache): b1) the servlets.default.initArgs can be spcified in the servlet itself like: Properties props = System.getProperties(); props.put( "ORBservices", "CosNaming" ); props.put( "SVCnameroot", "CorbaJava" ); props.put( "ORBagentAddr", "192.168.200.8" ); props.put( "ORBagentPort", "14000" ); System.setProperties( props ); b2) or generally in (for example): cp /usr/local/jserv/servlet.properties /usr/local/apache/etc/servlet.properties: and add a line: servlets.default.initArgs=DefaultTemplDir=/usr/local/apache/share/templates/,ORBagentAddr=192.168.200.8,ORBagentPort=14000,ORBservices=CosNaming,SVCnameroot=CorbaJava You access it then with: Properties props = System.getProperties(); if (conf.getInitParameter("ORBagentAddr") != null) props.put( "ORBagentAddr", conf.getInitParameter("ORBagentAddr")); System.setProperties( props ); c) Applets: Without the netscape plugin in the tag: http://192.168.200.8:9090/gatekeeper.txt> When using the activator Java plugin for netscape communicator, use the tag and for example: http://192.168.200.8:9090" org.omg.CORBA.ORBClass="com.visigenic.vbroker.orb.ORB" ORBServices="CosNaming" SVCnameroot="CorbaJava" ORBagentAddr="192.168.200.8" LOCdebug="true" Hopefully that helps others Marcel Thanks to Richard Jones <[EMAIL PROTECTED]> Armen Yampolsky <[EMAIL PROTECTED]> and a third person (Sorry i can't find your email any more) which gave me this answers -- Marcel Ruff [EMAIL PROTECTED]
Re: Java-VisiBroker CORBA on Linux with Blackdown Java 1.16/1.17 Howto
> Hence, you have an environment using muliple lang (C++/Java), multiple > platform (Linux server/ non-Linux client), multiple ORB > (omniORB/JavaIDL). About 1 year ago i used a combination of omniORB (my C++ server) and ORBaccus (my Java client) successfully on Linux. I believe, this situation of inter ORB communication has even improved today, regards, Marcel -- Marcel Ruff [EMAIL PROTECTED] http://www.lake.de/home/lake/swand/
Re: Java-VisiBroker CORBA on Linux with Blackdown Java 1.16/1.17 Howto
Hi, perhaps it's of interest for you, i just found out that the VisiBroker Windows process 'osagent' runs fine under the Linux emulator 'wine' ! I downloaded the binary distribution from http://www.winehq.com/download.html and modified the $HOME/.winerc (a copy from the wine source distribution wine.ini) I start osagent like: wine-990110-stripped-mode enhanced 'osagent -v' So a standanlone Linux box can run the complete VisiBroker (i didn't test SSL yet) I use a glibc-Linux 2.0.33, also Oracle 8.0.5 is nicely running on it (thin JDBC driver). regards Marcel -- Marcel Ruff [EMAIL PROTECTED] http://www.lake.de/home/lake/swand/
Re: JavaLinux for servlets, who to make templates?
Hi you wrote about servlets and html-templates. What possibilities are there to make html-templates and where is there a good parser to build the final html file from the template? thanks, Marcel -- Marcel Ruff [EMAIL PROTECTED] http://www.lake.de/home/lake/swand/
RE: JDBC for Oracle?????
Hello, >1. If I want to use JAVA to access Oracle, can I have to install >JDBC for ORACLE? Using the JDBC driver from http://www.oracle.com/st/products/jdbc/html/jdbc_collateral.html didn't work well in my case, i could only feed up to 1900 bytes of BLOB (as LONG RAW) data. Bigger sizes only filled 3 bytes into the database. Switching to the standard Linux-Oracle 8.0.5 distribution thin JDBC driver works well now: Its in the directory oracle/jdbc/lib/classes111.zip Marcel -- Marcel Ruff [EMAIL PROTECTED] http://www.lake.de/home/lake/swand/
RE: JDK1.2 and CORBA
Hi > ... > with the bind() methods, I think). Anyway, I decided not to use > Visibroker because (if I am not mistaken) you need to use their > OS agent > (a Win* exe file). The osagent runs very fine under Linux, if you use the 'wine' Windows emulator. http://www.winehq.com/download.html (just bunzip2 the binary) You need a Win98 or NT somewhere on another partition of your harddisk and install VisiBroker there as well. Then start the osagent e.g. like (w98-hda5 is my Windows98 partition): cd /w98-hda5/Visigenic/vbroker/bin setenv VBROKER_ADM /w98-hda5/Visigenic/vbroker/adm wine -mode enhanced 'osagent -v' -winver win95 -managed The gatekeeper / name service are pure java and runs very well on Linux. regards, Marcel -- Marcel Ruff [EMAIL PROTECTED] http://www.lake.de/home/lake/swand/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
RE: Libraries troubles with JDK 1.2 (glibc HOWTO)
Hi, you find all informations about libc/glibc and how to upgrade here: http://www.imaxx.net/~thrytis/glibc/index.old.html Marcel -- Marcel Ruff [EMAIL PROTECTED] http://www.lake.de/home/lake/swand/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
JNI / JKD2 / AWT / Linux 2.2.5 -> little C++/Java ´HelloWorldAwt´ gives a segmentation violation
Hello, i made a little HelloWorld C++ executable to popup a Java HelloWolrd GUI, but it gives a core dump. My environment: - Pentium Linux 2.0.36 with glibc - Motif 2.0.1 (shared library) - jdk1.2pre-v1.tar from Blackdown The output: (after invoking the C++ executable HelloWorldAwt) [Loaded sun.awt.NativeLibLoader from /usr/local/jdk1.2Pre1/jre/lib/rt.jar] [Dynamic-linking native method sun/awt/PlatformFont.initIDs ... JNI] [Loaded sun.awt.PlatformFont$1 from /usr/local/jdk1.2Pre1/jre/lib/rt.jar] [Dynamic-linking native method sun/awt/FontDescriptor.initIDs ... JNI] [Loaded sun.awt.motif.CharToByteX11Dingbats from /usr/local/jdk1.2Pre1/jre/lib/rt.jar] [Loaded sun.awt.CharToByteSymbol from /usr/local/jdk1.2Pre1/jre/lib/rt.jar] SIGSEGV 11* segmentation violation stackpointer=0xbfffeba0 Full thread dump Classic VM (Linux_JDK_1.2_pre-release-v1, native threads): "AWT-Motif" (TID:0x412c11a8, sys_thread_t:0x81be900, state:MW, native ID:0x1806) prio=5 at sun.awt.motif.MToolkit.run(Native Method) at java.lang.Thread.run(Thread.java:479) "SunToolkit.PostEventQueue-0" (TID:0x412c1010, sys_thread_t:0x81a2c30, state:CW, native ID:0x1405) prio=5 at java.lang.Object.wait(Native Method) How to reproduce: - There are 3 little files attached: HelloWorldAwt.C The C++ executable HelloWorldAwt.java The AWT Gui Popup window Makefile How i compile the stuff. Question: --- Did anybody try this before? Which Motif version do I need? Thanks for any hints, Marcel PS: The code seems to be more or less correct, since i just run it on Windows NT successfully /* HelloWorldAwt.C */ #include #include using namespace std; bool done = false; int main() { const int nOpts = 4; JavaVMOption options[nOpts]; int ii=0; options[ii++].optionString = "-Djava.compiler=NONE"; /* disable JIT */ options[ii++].optionString = "-Djava.class.path=.";/* user classes */ options[ii++].optionString = "-Djava.library.path=."; /* set native library path */ options[ii++].optionString = "-verbose:jni,class,gc"; /* print JNI-related messages */ JavaVMInitArgs vm_args; vm_args.version = JNI_VERSION_1_2; vm_args.options = options; vm_args.nOptions = nOpts; vm_args.ignoreUnrecognized = JNI_TRUE; JavaVM *jvm; JNIEnv *env; jint res = JNI_CreateJavaVM(&jvm, (void **)&env, &vm_args); if (res < 0) { cerr << "Can't create Java VM" << endl; exit(1); } cout << "JNI_CreateJavaVM() is OK" << endl; jclass cls = env->FindClass("HelloWorldAwt"); if (cls == 0) { cerr << "Can't find HelloWorldAwt class" << endl; exit(1); } jmethodID cons = env->GetMethodID(cls, "", "()V"); // Constructor if (cons == 0) { cerr << "Constructor ERROR" << endl; exit(1); } jobject obj = env->NewObject(cls, cons); if (obj == 0) { cerr << "NewObject ERROR" << endl; exit(1); } cout << "HelloWorldAwt.C: Entering forever loop ..." << endl; while (!done) { } cout << "HelloWorldAwt.C: Good bye ..." << endl; jvm->DestroyJavaVM(); return 0; } #JDK_HOME=/usr/local/jdk MY_JAVAC= javac MY_INCLUDE = -I$(JDK_HOME)/include -I$(JDK_HOME)/include/linux MY_JAVA_LIBS= -L$(JDK_HOME)/jre/lib/i386 -ljava -lawt -L $(JDK_HOME)/jre/lib/i386/native_threads -lhpi -L$(JDK_HOME)/jre/lib/i386/classic -ljvm MY_X_LIBS = -L/usr/X11R6/lib -lXm -lXpm -lXt -lSM -lICE -lXext -lX11 HelloWorldAwt.class : HelloWorldAwt.java $(MY_JAVAC) HelloWorldAwt.java @echo "-> HelloWorldAwt.class done" @echo "" HelloWorldAwt.h : HelloWorldAwt.java javah -jni HelloWorldAwt @echo "-> HelloWorldAwt.h done" @echo "" HelloWorldAwt : HelloWorldAwt.class HelloWorldAwt.h HelloWorldAwt.C g++ -D_REENTRANT $(MY_INCLUDE) $(MY_JAVA_LIBS) $(MY_X_LIBS) HelloWorldAwt.C -o HelloWorldAwt @echo "-> HelloWorldAwt (C++ executable) done" @echo "" all: usage HelloWorldAwt @echo "# Starting C++ application with Awt GUI ... " HelloWorldAwt @echo "" clean: rm -f *.class *.so rm -f HelloWorldAwt rm -f HelloWorldAwt.h usage: @echo "-" @echo "CAUTION: Set this environment before using the Makefile! &
Re: JNI / JKD2 / AWT / Linux 2.2.5 -> little C++/Java ´HelloWorldAwt´ gives a segmentation violation
Juergen Kreileder wrote: > >>>>> Marcel Ruff writes: > > Marcel> [1 ] > Marcel> Hello, > > Marcel> i made a little HelloWorld C++ executable to popup a Java > Marcel> HelloWolrd GUI, but it gives a core dump. > > The combination AWT and Invocation API doesn't work currently. > It should work with the next release. > > Juergen > > -- > Juergen Kreileder, Universitaet Dortmund, Lehrstuhl Informatik V > Baroper Strasse 301, D-44221 Dortmund, Germany > Phone: ++49 231/755-5806, Fax: ++49 231/755-5802 > Thanks for the quick respond! 1. When do you expect the next release? 2. Which Motif version should i use (Ill order now already) (is lesstiff working as well??) Thanks, Marcel -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: Applets!
> I get the same security violations while trying to use the > internatinoalization classes with applets, and I wonder if an applet also > must be signed to use the properties files... > > Per Bj. Bro You need to put all *.properties files in a jar file on your WebServer and add the ARCHIVE attribute to the APPLET tag in the html file to download .properties files! Othewise the properties files are searched locally and you get a security exception. I believe there is no other way (if you don't want to sign the applet) Marcel -- Marcel Ruff [EMAIL PROTECTED] http://www.lake.de/home/lake/swand/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: Java app server on linux ?
> Yes, to DB2 from EJB. DB2 runs beautifully on Linux. I am running the beta > version but it is still great. Give it plenty of memory though. > But we will soon try out Oracle 8. We are fairly confident as Oracle's JDBC > type 4 driver is very good. I have used it elsewhere. Hopefully should not > have too many problems. > > -- Aravind Oracle 8.0.5 with the thin Oracle-JDBC driver runs very stable and performant on my Linux box (glibc Linux 2.0.34 and 2.2.5) with 1.1.x blackdown Java. (Using it for several months now) Marcel -- Marcel Ruff [EMAIL PROTECTED] http://www.lake.de/home/lake/swand/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
RE: Java Plugin for Linux
Java-Plugin: see http://www.javasoft.com/products/plugin/ Netscape has a built in java runtime (1.1.5) If you need another java version or want to ignore security features etc., you need to supply a Java Plugin, using the netscpae plugin interface. With the Java plugin you can't use the html tag, but need to use the tag, eg. http://swand" NAME="Hello, what else?" org.omg.CORBA.ORBClass="com.visigenic.vbroker.orb.ORB" ORBServices="CosNaming" SVCnameroot="Marcel" ORBagentPort="14000" ORBagentAddr="swand" ORBgatekeeperIOR="http://swand:15000/gatekeeper.ior" LOCdebug="true" UserSessionId="TestUser" myId="1000" > Marcel -- Marcel Ruff [EMAIL PROTECTED] http://www.lake.de/home/lake/swand/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: Oracle's JDBC on Linux
> I've searched Oracle WEB site without success finding mentioned driver. > > Could you point me to its location, please? Or is it part of Oracle8i > > distribution only? > > ip If you are using Linux - Oracle 8.0.5: Don't use the Thin JDBC driver from WWW-Oracle, its buggy for files bigger 2kb. Use the Thin JDBC driver which comes along with the Linux Oracle 8.0.5 distribution ... oralce/jdbc/lib/classes111.zip This works fine. Marcel -- Marcel Ruff [EMAIL PROTECTED] http://www.lake.de/home/lake/swand/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
RE: Newbie question.... Servlets on Linux
> I'd also like to see comments from those who have installed/run all > of the servlet stuff or have atempted it. > > Many thanks in advance !! > > Phil Butler > [EMAIL PROTECTED] Servlets are running without any problems on Linux. The combination apache/jserv is very good, using of apache/jrun also works fine. (I'm using JDK 1.1.x and the newest apache with jrun or jserv on a glibc Linux) Marcel -- Marcel Ruff [EMAIL PROTECTED] http://www.lake.de/home/lake/swand/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
RE: How to trap signals?
> How can I make a method being called before the jvm exits when killing > the jvm (or pressing Ctrl-C if its in the foreground)? I believe you need to handle it using JNI and calling C code (not very portable) The following software does this for you: http://interstice.com/~kevinh/projects/javasignals/index.html Marcel -- Marcel Ruff [EMAIL PROTECTED] http://www.lake.de/home/lake/swand/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
JNI problems with JDK 1.2 Pre2 (crashing Linux)
Hi, My AWT HelloWorldAwt.java invoked thru C++/JNI is crashing my Linux box! My first Linux crash after 3 years :-( It eats up all my memory 128MB + swap 128MB in a few seconds. The same HelloWorldAwt.java works well with JDK 1.1.x - JNI (C++ invoked) and invoked with JDK 1.2 Pre2 directly (java HelloWorldAwt) A none AWT HelloWorld.java works fine if invoked thru C++ - JNI on 1.2 Pre2. The environment: --- Linux Intel glibc 2.0x echo $RTLD_NOW true echo $LD_BIND_NOW true echo $LD_PRELOAD (i played around with this setting, but it didnt help) libpthread.so libjava.so echo $LD_LIBRARY_PATH /usr/local/jdk/jre/lib/i386:/usr/local/jdk/jre/lib/i386/native_threads:/usr/local/jdk/jre/lib/i386/classic:. The properties in the C++ main program for JNI_CreateJavaVM() (which is invoking the Java HelloWorld using JNI) --- options[ii++].optionString = "-Djava.compiler="; options[ii++].optionString = "-Djava.class.path=."; options[ii++].optionString = "-Djava.library.path=."; options[ii++].optionString = "-verbose:gc,class,gc"; The output: --- bin> HelloWorldAwt (my C++ programm) . ( many debugging infos from JVM) [Loaded java.awt.Insets from /usr/local/jdk1.2Pre2/jre/lib/rt.jar] [Loaded sun.security.action.GetIntegerAction from /usr/local/jdk1.2Pre2/jre/lib/rt.jar] [Loaded sun.awt.motif.MEmbeddedFrame from /usr/local/jdk1.2Pre2/jre/lib/rt.jar] [Loaded sun.awt.EmbeddedFrame from /usr/local/jdk1.2Pre2/jre/lib/rt.jar] -> here it hangs and eats up all my memory(its during the call to java.awt.Window - show() Any idea? thanks, Marcel -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
RE: JNI problems with JDK 1.2 Pre2 (crashing Linux) -> solved!
Hi, i used a symbolic link to point to the JDK 1.2pre2, this crashed my whole Linux : in /usr/local: drwxr-xr-x 9 marcel users1024 Jun 9 15:03 jdk1.2Pre2 lrwxrwxrwx 1 marcel users 10 Jun 8 21:47 jdk ->jdk1.2Pre2 in conjunction with using: echo $LD_LIBRARY_PATH .:/usr/local/jdk/jre/lib/i386:/usr/local/jdk/jre/lib/i386/native_threads:/usr/local/jdk/jre/lib/i386/classic This fixed the problem: --- echo $LD_LIBRARY_PATH .:/usr/local/jdk1.2Pre2/jre/lib/i386:/usr/local/jdk1.2Pre2/jre/lib/i386/native_threads:/usr/local/jdk1.2Pre2/jre/lib/i386/classic So the LD_LIBRARY_PATH is not allowed to follow a symbolic link in this JDK 2 distribution! Perhaps this dependency on a symbolic link should be resolved in a future release. thanks Juergen Kreileder for you support, Marcel >Hi, > > My AWT HelloWorldAwt.java invoked thru C++/JNI is crashing my Linux box! > >My first Linux crash after 3 years :-( >It eats up all my memory 128MB + swap 128MB in a few seconds. > >The same HelloWorldAwt.java works well with JDK 1.1.x - JNI (C++ >invoked) >and invoked with JDK 1.2 Pre2 directly (java HelloWorldAwt) >A none AWT HelloWorld.java works fine if invoked thru C++ - JNI on 1.2 >Pre2. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
C++ with JNI with JDK1.2pre2 with sunwjit crashes on Linux
Hi, I have a little HelloWorldAwt.C sample, which crashes on Linux when compiled and linked as C++ code (using g++). HelloWorldAwt.C invokes via JNI a litle Java popup. When disabling the JIT it works fine. But: --- Compiled and linked as C (using cc) it runs fine (with or without JIT) The problem seems somehow related to the different way C and C++ is linked. My environment is: intel Linux 2.2.5 , glibc 2.0x gcc version gcc-2.95 19990602 (prerelease) I will provide an example if desired. thanks, Marcel Output when crashing --- [Dynamic-linking native method java/lang/System.mapLibraryName ... JNI] [Loaded java.lang.ClassLoader$3 from /usr/local/jdk1.2Pre2/jre/lib/rt.jar] [Loaded java.lang.Boolean from /usr/local/jdk1.2Pre2/jre/lib/rt.jar] [Loaded java.lang.ClassLoader$NativeLibrary from /usr/local/jdk1.2Pre2/jre/lib/rt.jar] [Dynamic-linking native method java/lang/ClassLoader$NativeLibrary.load ... JNI] [Loaded native library: /usr/local/jdk1.2Pre2/jre/lib/i386/libsunwjit.so] [Dynamic-linking native method java/lang/ClassLoader$NativeLibrary.find ... JNI] [Loaded java.lang.NullPointerException from /usr/local/jdk1.2Pre2/jre/lib/rt.jar] SIGSEGV 11* segmentation violation stackpointer=0xbfffe618 Full thread dump Classic VM (Linux_JDK_1.2_pre-release-v2, native threads): "Finalizer" (TID:0x404dc320, sys_thread_t:0x80cacc8, state:CW, native ID:0xc03) prio=8 at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:112) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:174) "Reference Handler" (TID:0x404dc3b0, sys_thread_t:0x80c63e0, state:CW, native ID:0x802) prio=10 at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:424) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:114) "SIGQUIT handler" (TID:0x404dc3e0, sys_thread_t:0x80bee68, state:R, native ID:0x401) prio=5 "main" (TID:0x404dc1e0, sys_thread_t:0x804a8b0, state:R, native ID:0x400) prio=5 at java.lang.String.valueOf(Compiled Code) at java.lang.Compiler.(Compiler.java:68) Monitor Cache Dump: java.lang.ref.ReferenceQueue$Lock@404DC338/40512028: Waiting to be notified: "Finalizer" (0x80cacc8) (0x404dc131): owner "main" (0x804a8b0) 1 entry java.lang.ref.Reference$Lock@404DC3C0/40511B20: Waiting to be notified: "Reference Handler" (0x80c63e0) Registered Monitor Dump: PCMap lock: utf8 hash table: JNI pinning lock: JNI global reference lock: BinClass lock: Class linking lock: System class loader lock: Code rewrite lock: Heap lock: Monitor cache lock: owner "main" (0x804a8b0) 1 entry Thread queue lock: owner "main" (0x804a8b0) 1 entry Dynamic loading lock: Monitor registry: owner "main" (0x804a8b0) 1 entry -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
RE: jni for linux
Hi, To use JNI you only need the blackdown JDK. I have attached some files how i always test the JNI on Linux: C++ calling JDK 2 Awt. the almost same example works with JDK 1.1.7 as well. regards Marcel HelloWorldAwt-1.2.tar.gz
VisualAge Java native compiler HPJ on Linux?
Hi, does anybody know if the native compiler HPJ (from IBM) is available on Linux. How does it perform, does it compile Swing as well? Does it work with the Blackdown JDK 2? thanks, Marcel -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Modal JDialog never returns (Bug?)
Hi, the following little examples doesnt return (about every second time). Especially when you first click in the text area and write some letters and than click OK, the final System.out.println() is never printed. - import javax.swing.JOptionPane; import javax.swing.JFrame; public class ModalEvent { static public void main(String[] args) { System.out.println("Testing JDialog events ..."); JFrame frame = new JFrame("Hello"); String str = JOptionPane.showInputDialog(frame, "Please enter: ", "Modal not returning", JOptionPane.QUESTION_MESSAGE); System.out.println("SUCCESS: str=" + str); } } -- Could anybody try on his/her machine if it works there? Sometimes i had the feeling, that the shorte my CLASSPATH was, the better the situation ?!*~ ;-( thanks for any hint, Marcel (Im using Linux glibc with JDK 2 pre2) -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: XML development on Linux?
"John N. Alegre" wrote: > I am looking for an XML development system to use on Linux. > > What I mean is some way to view and exercise XML code. I know a > "development system" is an editor and I certainly have a lot of those. > > But I need to write and debug XML code to be deployed on Windoze IE but I don't > want to create it there. > > All comments welcome. Have a look at http://www.stud.ifi.uio.no/~larsga/linker/XMLtools.html for a good overview of XML/DTD/XSL tools. Marcel -- Marcel Ruff [EMAIL PROTECTED] http://www.lake.de/home/lake/swand/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
JNI and initialization of static C++ classes on Linux with JDK 1.3.1
Hi, i am using Linux 2.4.4-4 with JDK 1.3.1 I want to call one method in a native, shared C++ library from Java, using JNI. The C++ .so lib depends on other .so libs which have many C++ classes which are usually initialized automatically on startup before the main() method (if i invoke the old C++ application executable). Now it seems, that the java System.load() does not call something like _main_() I believe all my global C++ classes are uninitialized - as i get this error: -- An unexpected exception has been detected in native code outside the VM. Unexpected Signal : 11 occurred at PC=0x405927d9 Function name=__as__t12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b1i0RCt12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b1i0 Library=/usr/lib/libstdc++-libc6.1-1.so.2 --- Is there any lowlevel main() in the Linux clib which i can invoke manually? thanks for any hint, Marcel -- Marcel Ruff mailto:[EMAIL PROTECTED] http://www.lake.de/home/lake/swand/ http://www.xmlBlaster.org -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: JNI and initialization of static C++ classes on Linux with JDK 1.3.1
Matthias Pfisterer wrote: > Hi, > > a funktion void _init(void) is called on loading a shared library, if it > exists. See dlopen(3). This didn't help, i have reduced it to this example: InitTest.H --- class InitTest { public: static char * charName; public: static string stringName; }; #if EXTERN_MAIN char * InitTest::charName = "Hello charP"; string InitTest::stringName = string("Hello string"); # endif --- compile this into libInitTest.so xy.C #define EXTERN_MAIN 1 // Runs fine: cout << "C++: the charName=" << InitTest::charName << endl; // Sig 11 - core dump: cout << "C++: the stringName=" << InitTest::stringName << endl; ... compile this into xy.so Looking into the .so libs: - nm -o *.so | grep charName libxy.so:00028910 D _8InitTest.charName libxy.so:0001bf60 t _GLOBAL_.D._8InitTest.charName libxy.so:0001bf30 t _GLOBAL_.I._8InitTest.charName nm -o *.so | grep stringName libxy.so:0002d4c8 B _8InitTest.stringName The "string" class is never initialized whereas the char* acts as expected! Why? Why is there no entry in libInitTest.so? thanks again for any help, Marcel PS: I will send this question to the gcc mailing list as well probably they know. > > Matthias > > > Marcel Ruff wrote: > >>Hi, >> >>i am using Linux 2.4.4-4 with JDK 1.3.1 >> >>I want to call one method in a native, shared C++ library from >>Java, using JNI. >> >>The C++ .so lib depends on other .so libs >>which have many C++ classes which are >>usually initialized automatically on startup before the >>main() method (if i invoke >>the old C++ application executable). >> >>Now it seems, that the java System.load() >>does not call something like _main_() >> >>I believe all my global C++ classes are >>uninitialized - as i get this error: >> >>-- >> An unexpected exception has been detected in native code outside the VM. >> Unexpected Signal : 11 occurred at PC=0x405927d9 >> Function >>name=__as__t12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b1i0RCt12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b1i0 >>Library=/usr/lib/libstdc++-libc6.1-1.so.2 >>--- >> >>Is there any lowlevel main() in the Linux clib >>which i can invoke manually? >> >>thanks for any hint, >> >>Marcel >> >>-- >>Marcel Ruff >>mailto:[EMAIL PROTECTED] >>http://www.lake.de/home/lake/swand/ >>http://www.xmlBlaster.org >> >>-- >>To UNSUBSCRIBE, email to [EMAIL PROTECTED] >>with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED] >> > -- Marcel Ruff mailto:[EMAIL PROTECTED] http://www.lake.de/home/lake/swand/ http://www.xmlBlaster.org -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
JNI from JDK1.2 on Linux-2.0.36 hangs in method JNI_CreateJavaVM()
Hi, My little JNI HelloWorld C++ program hangs when invoking JNI_CreateJavaVM() with following output: > export LD_BIND_NOW=true > export RTLD_NOW=true > invokecpp [Opened /usr/local/jdk1.2Pre1/jre/lib/rt.jar in 29 ms] [Opened /usr/local/jdk1.2Pre1/jre/lib/i18n.jar in 4 ms] -> here it stays forever The old version, calling the JDK 1.1 interface (Blackown Java 1.1.7) runs fine. CAN ANYBODY PROVIDE ME A LITTLE HELLOWORLD JNI SAMPLE CODE WHICH WORKS? I couldnt find any example for the new JDK-2 JNI API, so perhaps im using it wrong. My Environment: - - Pentium Linux 2.0.36 with glibc - jdk1.2pre-v1.tar from Blackdown How i compiled it: - export LD_BIND_NOW=true export RTLD_NOW=true g++ -D_REENTRANT -I/usr/local/jdk/include -I/usr/local/jdk/include/linux invoke.C -o invokecpp -L/usr/local/jdk/jre/lib/i386 -ljava -L /usr/local/jdk/jre/lib/i386/native_threads -lhpi -L/usr/local/jdk/jre/lib/i386/classic -ljvm How invoke.C looks like: -- #include main() { JNIEnv *env; JavaVMInitArgs vm_args; JavaVMOption options[4]; options[0].optionString = "-Djava.compiler=NONE"; /* disable JIT */ options[1].optionString = "-Djava.class.path=.";/* user classes */ options[2].optionString = "-Djava.library.path=."; /* set native library path */ options[3].optionString = "-verbose:jni,class,gc"; /* print JNI-related messages */ vm_args.version = JNI_VERSION_1_2; vm_args.options = options; vm_args.nOptions = 4; vm_args.ignoreUnrecognized = JNI_TRUE; JavaVM *jvm; jint res = JNI_CreateJavaVM(&jvm, (void **)&env, &vm_args); . here it hangs :-( Thanks very much for any hint, Marcel PS: Please send answers to [EMAIL PROTECTED] as well -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: JNI from JDK1.2 on Linux-2.0.36 hangs in method JNI_CreateJavaVM() - RESOLVED (THANKS)
Juergen Kreileder wrote: > >>>>> Marcel Ruff developer writes: > > Marcel> Hi, > Marcel> My little JNI HelloWorld C++ program hangs when invoking > Marcel> JNI_CreateJavaVM() with following output: > > >> export LD_BIND_NOW=true > >> export RTLD_NOW=true > >> invokecpp > Marcel> > Marcel> [Opened /usr/local/jdk1.2Pre1/jre/lib/rt.jar in 29 ms] > Marcel> [Opened /usr/local/jdk1.2Pre1/jre/lib/i18n.jar in 4 ms] > > -> here it stays forever > > Please try again with 'export LD_PRELOAD=libpthread.so'. > > Juergen > That helped, it runs now fine. Thank you for your instant help! Solving problems in the free software world is done in minutes :-) thanks, Marcel -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: JNI from JDK1.2 on Linux-2.0.36 hangs in method JNI_CreateJavaVM()
Riyad Kalla wrote: > Wait... what is JNI? And why does all that code at the bottom look so > complicated for "Hello World"? > > Thanks in advance. > > Riyad > > -- > > From: Marcel Ruff developer <[EMAIL PROTECTED]> > > To: [EMAIL PROTECTED]; [EMAIL PROTECTED] > > Subject: JNI from JDK1.2 on Linux-2.0.36 hangs in method > JNI_CreateJavaVM() > > Date: Friday, April 16, 1999 6:35 AM > > > > Hi, > > > > My little JNI HelloWorld C++ program hangs when invoking > > JNI_CreateJavaVM() with following output: > > > > > export LD_BIND_NOW=true > > > export RTLD_NOW=true > > > invokecpp > > > > [Opened /usr/local/jdk1.2Pre1/jre/lib/rt.jar in 29 ms] > > [Opened /usr/local/jdk1.2Pre1/jre/lib/i18n.jar in 4 ms] > > > > -> here it stays forever > > > > The old version, calling the JDK 1.1 interface (Blackown Java 1.1.7) > > runs fine. > > > > CAN ANYBODY PROVIDE ME A LITTLE HELLOWORLD JNI SAMPLE CODE WHICH WORKS? > > > > I couldnt find any example for the new JDK-2 JNI API, so perhaps im > > using it wrong. > > > > > > My Environment: > > - > > - Pentium Linux 2.0.36 with glibc > > - jdk1.2pre-v1.tar from Blackdown > > > > > > How i compiled it: > > - > > export LD_BIND_NOW=true > > export RTLD_NOW=true > > g++ -D_REENTRANT -I/usr/local/jdk/include -I/usr/local/jdk/include/linux > > invoke.C -o invokecpp -L/usr/local/jdk/jre/lib/i386 -ljava -L > > /usr/local/jdk/jre/lib/i386/native_threads -lhpi > > -L/usr/local/jdk/jre/lib/i386/classic -ljvm > > > > > > How invoke.C looks like: > > -- > > #include > > > > main() > > { > > JNIEnv *env; > > > > JavaVMInitArgs vm_args; > > JavaVMOption options[4]; > > > > options[0].optionString = "-Djava.compiler=NONE"; /* > > disable JIT */ > > options[1].optionString = "-Djava.class.path=.";/* user > > classes */ > > options[2].optionString = "-Djava.library.path=."; /* set > > native library path */ > > options[3].optionString = "-verbose:jni,class,gc"; /* print > > JNI-related messages */ > > > > vm_args.version = JNI_VERSION_1_2; > > vm_args.options = options; > > vm_args.nOptions = 4; > > vm_args.ignoreUnrecognized = JNI_TRUE; > > > > JavaVM *jvm; > > jint res = JNI_CreateJavaVM(&jvm, (void **)&env, &vm_args); > > . here it hangs :-( > > > > > > Thanks very much for any hint, > > > > Marcel > > > > PS: Please send answers to [EMAIL PROTECTED] as well > > > > > > -- > > To UNSUBSCRIBE, email to [EMAIL PROTECTED] > > with a subject of "unsubscribe". Trouble? Contact > [EMAIL PROTECTED] > > > JNI ist the nativ interface from Java, to acces C/C++ etc. I use Java-Swing as my portable GUI toolkit for our C++ software. Marcel -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]