Friday, April 27, 2012

Eclipse won't start on Linux "Could not load SWT library" with Oracle Java 7

Problem:
When starting Eclipse on Linux (64bit Ubuntu 12.04) you get an error message:
An error has occurred.  See the log file
/home/<user_name>/.eclipse/org.eclipse.platform_3.70_155965261/configuration/1335552227148.log.

Opening the log file reveals the following:
!SESSION 2012-04-27 11:43:47.016 -----------------------------------------------
eclipse.buildId=I20110613-1736
java.version=1.7.0_03
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Command-line arguments:  -os linux -ws gtk -arch x86_64


!ENTRY org.eclipse.osgi 4 0 2012-04-27 11:43:48.075
!MESSAGE Application error
!STACK 1
java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons: 
no swt-gtk-3740 in java.library.path
no swt-gtk in java.library.path
Can't load library: /home/maj/.swt/lib/linux/x86_64/libswt-gtk-3740.so
Can't load library: /home/maj/.swt/lib/linux/x86_64/libswt-gtk.so


at org.eclipse.swt.internal.Library.loadLibrary(Library.java:285)
at org.eclipse.swt.internal.Library.loadLibrary(Library.java:194)
at org.eclipse.swt.internal.C.<clinit>(C.java:21)
at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:63)
at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:54)
at org.eclipse.swt.widgets.Display.<clinit>(Display.java:132)
at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:695)
at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:161)
at org.eclipse.ui.internal.ide.application.IDEApplication.createDisplay(IDEApplication.java:153)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:95)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
at org.eclipse.equinox.launcher.Main.main(Main.java:1386)

Solution:
Execute the following command to create a symlink to the current version of swt:

ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86_64/



References:

  1. StackOverflow: Ubuntu - Eclipse cannot load SWT libraries. Not opening

Monday, April 16, 2012

SmartGit Hangs When Switching Branches

Problem:
On Windows, SmartGit Hangs when switching braches, with the message:

Process Not Responding
SmartGit is waiting for the following process to finish.
C:\Program Files(x86)\Git\bin\git.exe ls-remote origin
If you thnk the process is hanging, click the Exit Process button, otherwise Wait




Solution:
Install an earlier version of msysgit to eliminate this issue.

This error popped up in version 1.7.10 (Git-1.7.10-preview20120409.exe) of msysgit.   This error was confirmed absent from versions 1.7.9 (Git-1.7.9-preview20120201.exe) and 1.7.8 (Git-1.7.8-preview20111206.exe)  of msysgit.

UPDATE (2012-04-24):

This bug was fixed in SmartGit 3.0.4 (2012-04-21):
  • Switch (Git): hangs for https repositories with (msys)Git 1.7.9.2 or newer





Tuesday, April 10, 2012

SmartGit SSL Certificate Problem, error:14090086:SSL




Problem:
You get error:14090086:SSL in SmartGit when trying to clone a remote repository using HTTPS (SSL):


Command Failed:  SSL certificate problem, verify that the CA cert is OK.  Details:  HTTP request failed: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https


Solution (Windows):

1.  Create a new directory called <project_name>

2. Right-Click on the new directory and select "Git Bash Here"

3.  Enter the following command lines:

git init

git config http.sslVerify false

git remote add origin https://</Bonobo.Git.Server/Git.aspx/pylet

4. Close the Git Bash

5. Open SmartGit and open the existing local repository, and click the Pull button


Warning:
This solution is a security risk if ever used with an external site and is intended for intranet servers with self-signed ssl certificates.  Do not use this solution with public servers and if your repository is ever moved to an external site, you will want to switch http.sslVerify back to true.

You might see examples using a global setting (git config --global http.sslverify "false") .  In the solution presented here, we are intentionally disabling SSL verification on a per repository basis so you can still safely use public repositories.


References: