Wednesday, November 6, 2013

JDeveloper 12c crashes at startup

I've recently started using JDeveloper, and will eventually start to support it.

However, the latest JDeveloper 12.1.2.0.0 gave me a headache, that I cannot start it. It always crashes on my Mint 15.

Below's the output:

$./jdev
Oracle JDeveloper 12c 12.1.2.0.0  Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 
# A fatal error has been detected by the Java Runtime Environment: #  SIGSEGV (0xb) at pc=0xa3e351e0, pid=16287, tid=2826627904 # JRE version: 7.0_15-b33 # Java VM: Java HotSpot(TM) Server VM (23.7-b01 mixed mode linux-x86 ) # Problematic frame: # C  0xa3e351e0 # Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again [thread -1462166720 also had an error] # An error report file with more information is saved as: # [thread -1462166720 also had an error] # If you would like to submit a bug report, please visit: #   http://bugreport.sun.com/bugreport/crash.jsp /home/sean/Oracle/JDev121200/jdeveloper/jdev/bin/../../ide/bin/launcher.sh: line 603: 16287 Aborted                 (core dumped) ${JAVA} "${APP_VM_OPTS[@]}" ${APP_ENV_VARS} -classpath ${APP_CLASSPATH} ${APP_MAIN_CLASS} "${APP_APP_OPTS[@]}"

There's also a jdk mini dump generated, but almost useless(at lease to me).

I've tried the following:

  1. tried 32bit and 64bit, same problem 
  2. tried upgrading the default JDK 1.7.0_15 to the latest 1.7.0_45, no luck 
  3. tried JDeveloper 11g, no problem at all 


Checked internally and finally found the cause, it's an environment parameter that stops the IDE showing up:
GNOME_DESKTOP_SESSION_ID
On my Mint box, if I run:
 $env |grep GNOME 
 I got:
GNOME_KEYRING_CONTROL=/run/user/sean/keyring-X5wlWr
GNOME_KEYRING_PID=2272
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
XDG_CURRENT_DESKTOP=GNOME
It's this 'GNOME_DESKTOP_SESSION_ID=this-is-deprecated' causing the JDeveloper to crash. 

I modified my jdev under jdeveloper/jdev/bin, added one line after main section:

#-----------------------------------------------------------------------------
#  main
#-----------------------------------------------------------------------------
unset GNOME_DESKTOP_SESSION_ID

then JDev started like a charm.

Some people might have discovered another solution which was using 'sudo ./jdev' to start JDeveloper. I guess that has the same idea as that process has a different environment which does not contains this problematic 'GNOME_DESKTOP_SESSION_ID'.

6 comments:

  1. Thank you. I've struggled this problem also. How do you knot this environment variable cause the problem?

    ReplyDelete
  2. Thanks for sharing your solution. Installed JDeveloper 12c on my Linux Mint laptop today and had the same issues. Applied you solution and now JDeveloper starts normally. Again, many thanks!!

    ReplyDelete
  3. Thanks a lot! This has worked for me too -- I'm using an Ubuntu 14.04 Desktop version.

    ReplyDelete
  4. Thanks a lot. It worked for my ubuntu virtual box !

    ReplyDelete
  5. You are legend !!

    I installed OSB 12c on RHEL 7.0 and this jdeveloper wouldnt just come up.. would keep crashing all the time.

    The change you said which is to modify jdev and put unset GNOME_SESSION_ID worked well.

    Can you please let me / us know how you came to know that thats the issue ??
    People could have and am sure would have wasted a lot of time debugging it ..

    Thanks once again and please let us know how you came to know it.

    Cheers
    Ram

    ReplyDelete
  6. I tried the 2 solutions but it did not work for me, kindly help on what i need to do. i installed BPM sSuite on a solaris machine and i want to start the jdeveloper.

    ReplyDelete