Wednesday, 20 November 2013

Eclispe RCP : symbol lookup error: /usr/lib64/xulrunner-1.9.2.17/libxul.so: undefined symbol: gdk_screen_get_resolution

Error : 
symbol lookup error: /usr/lib64/xulrunner-1.9.2.17/libxul.so: undefined symbol: gdk_screen_get_resolution

Solution :

1. Locate the XULRunner library. 
# cd /usr/lib
# ls -ld xul*
lrwxrwxrwx 1 root root 21 2012-02-20 17:32 xulrunner-1.8.0 -> xulrunner-1.8.old
lrwxrwxrwx 1 root root 21 20012-02-20 10:44 xulrunner-1.8.0.1 -> xulrunner-1.8.new
lrwxrwxrwx 1 root root 18 2012-08-07 10:43 xulrunner-1.9 -> xulrunner-1.9.0.11
drwxr-xr-x 12 root root 4096 2012-08-07 10:45 xulrunner-1.9.0.11



2. If you are not able to locate the XULRunner in your system then, download from following location and install it :

http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases

3. Modify eclipse.ini file with the xulrunner path found. append the following line at the end of the file.

-Dorg.eclipse.swt.browser.XULRunnerPath=/usr/local/xulrunner-1.9.0.11/

4. Restart your RCP.



Wednesday, 16 October 2013

Native Library in Eclipse RCP

Native Library in Eclipse RCP Plug-in

Adding native library in eclipse RCP is little-bit bit tricky part. Mainly native library has extensions like .so or .dll . There are multiple ways to define this kind of libraries to the eclipse RCP plug-in. (Follow steps one by one anyone of them will work.)

Here we take one example :
Suppose you have following directory structure

<dirPath>/NativeLibraryDirectory/
     --- nativeFile.jar
     --- nativeLib.so


1. Adding library to the project

For adding library to the project , right click on Project name -> select "Properties..." -> then go to "Java Build Path"
Add nativeFile.jar from External jar button.
Expand nativeFile.jar and double click on "native library location"
enter the path "<dirPath>/NativeLibraryDirectory/"

2. Using LD_LIBRARY_PATH
Set following environment before starting the Eclipse.

setenv LD_LIBRARY_PATH <dirPath>/NativeLibraryDirectory/:$LD_LIBRARY_PATH

3. Using -Djava.library.path

-Djava.library.path=<dirPath>/NativeLibraryDirectory/

4. Updating Menifiest (Bundle-Nativecode)

Add following line in MANIFEST.MF

Bundle-NativeCode: /libs/yourlib.dll; /libs/someotherlib.dll; osname=win32; processor=x86


Anyone of above method will work so try it one by one. The do following steps.



Before Using the libray in the code mention following lines
System.loadLibrary("nativeLib")

Friday, 27 September 2013

Could not launch the product because the associated workspace is currently in use by another Eclipse application


"Could not launch the product because the associated workspace is currently in use by another Eclipse application."

or

“Workspace in use or cannot be created chose a different one.”



Solution : 
go to workspace location
remove file <workspace location>/.metadata/.lock

Saturday, 21 September 2013

How to run Maven from another directory ?

How to run Maven from another directory ?

Supposing my Maven project is found in /home/harikr/some/project/location and my current location is /home/harikr/abc/location/ however am I able to run Maven build while not ever-changing to project location cd /some/location/project?


Solution :

mvn -f /home/harikr/some/project/location/pom.xml

Wednesday, 28 August 2013

Singleton Design Pattern in Java

Singleton Design Pattern

Singleton Design Pattern means able to create only one object of the class. When you want to restrict some class from being created multiple objects, this design pattern is being used.

First step of creating the class singleton is to make it's constructor private so other class can't call it anytime and create and object of it.

Then create a static method "getInstance" which will return the object of the same class . Here its SingletonExampleClass . This method (getInstance) is created static , because this class has private constructor so we won't have it's object with us to access this class first time.

Synchronized block is used stop multiple threads to access the instantiation code block at the same time, else it will be able to create multiple objects.

now assume that two thread are there T1 and T2. Not Thread T1 access this method first and acquire the lock. While Thread T1 was accessing the code inside Synchronized block, second thread T2 enters and try to access the same synchronized block, but as T1 also has lock , T2 went to waiting state. When T1 complete the execution , T2 acquire the lock, and it will be able to create the new instance once again. So here is the violation of the condition. To avoid this, we provide if conditions to check if and only if the instance is null then and then only it will go for new instance else it will return the already initialized object.

Following Books are good to refer :

public class SingletonExampleClass {
 static SingletonExampleClass instance;

 private SingletonExampleClass() {
 }

 public static SingletonExampleClass getInstance() {
  if (instance == null) {
   synchronized (SingletonExampleClass.class) {
    if (instance == null)
     instance = new SingletonExampleClass(); // 3
   }
  }
  return instance;
 }
}


Why second if statement in Singleton pattern?
Ans :
Step 1

Step -2


Step 3

How to resolve : print() on closed filehandle in perl

How to resolve : print() on closed filehandle in perl

Error "print() on closed filehandle" generated in the following condition ( it is on of possible cause of it)

-------------------------- BEGIN Code ---------------------------------------
my $inputFile = '/this/is/path/of/your/input/file.txt';
open(MYINPUTFILE, ">","$inputFile");
print MYINPUTFILE "any data";
close(MYINPUTFILE);
-------------------------- END Code ---------------------------------------

here if you don't have permission to access the path '/this/is/path/of/your/input/file.txt' or the path (of parent directory) does not exist then it will throuw the error : print() on closed filehandle

To resolve this better to make practice as follow while opening the file:

-------------------------- BEGIN Code ---------------------------------------
open(MYINPUTFILE, ">","$inputFile") or die "ERROR ::: unable access the file";
-------------------------- END Code ---------------------------------------

So it won't executes the lines after the open file if there is issue in opening file, else it will execute the following lines and gives the error where you tries to access the File.


Wednesday, 31 July 2013

FileNotFoundException in Java


There are three  reason,for this java.io.FileNotFoundException to be thrown at run-time and the reasons are follows:

Reason1: 
 

"If the given file is not available in the specified location then this error will occur".
As you see,this is the most obvious reason for this exception as indicated by the Exception itself.
Example:

import java.io.*;public class Example1{ public static void main(String[] args){FileReader reader = new FileReader("c:/javaInterviewExam.txt");BufferedReader br = new BufferedReader(reader);String strcontent =null;while ((strcontent = br.readLine()) != null){System.out.println(strcontent);}br.close();}}
In the above code during the execution of the line BufferedReader br=new BufferedReader(reader); if the file exam.txt is not found in the given location then the following error message will appear.
Error message:

java.io.FileNotFoundException: c:\javaInterviewExam.txt (The system cannot find the file specified)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.(Unknown Source)        
        at java.io.FileInputStream.open(Native Method)        at java.io.FileInputStream.(Unknown Source)                at java.io.FileInputStream.(Unknown Source)                at java.io.FileReader.(Unknown Source)                at Example1.main(Example1.java:9)

This exception can be resolved by giving the correct path of the file or storing the file in the given location.

Reason 2:
"If the given file is inaccessible, say for an example if it is write protected(i.e, ReadOnly) then you can able to read the file but when you try to modify(write into) the file then this error will occur".
Example: import java.util.*;

import java.io.*;class ReadingFiles{public static void main(String args[]){try{File f=new File("FileOut1.txt");PrintWriter p=new PrintWriter(new FileWriter(f),true);p.println("Hello world");p.println("HI PEOPLE");p.println("hello");p.close();f.setReadOnly();PrintWriter p1=new PrintWriter(new FileWriter("FileOut1.txt"),true);p1.println("World");}catch(Exception e){e.printStackTrace();}}}
ERROR MESSAGE:
java.io.FileNotFoundException: FileOut1.txt (Access is denied)        at java.io.FileOutputStream.open(Native Method)        at java.io.FileOutputStream.(Unknown Source)
        at java.io.FileOutputStream.(Unknown Source)
        at java.io.FileWriter.(Unknown Source)
        at ReadingFiles.main(ReadingFiles.java:13)
        at java.io.FileOutputStream.(Unknown Source)
        at java.io.FileWriter.(Unknown Source)
        at ReadingFiles.main(ReadingFiles.java:13)
        at java.io.FileWriter.(Unknown Source)
        at ReadingFiles.main(ReadingFiles.java:13)
        at ReadingFiles.main(ReadingFiles.java:13)                at java.io.FileOutputStream.(Unknown Source)
        at java.io.FileWriter.(Unknown Source)
        at ReadingFiles.main(ReadingFiles.java:13)
        at java.io.FileWriter.(Unknown Source)
        at ReadingFiles.main(ReadingFiles.java:13)
        at ReadingFiles.main(ReadingFiles.java:13)                at java.io.FileWriter.(Unknown Source)
        at ReadingFiles.main(ReadingFiles.java:13)
        at ReadingFiles.main(ReadingFiles.java:13)                at ReadingFiles.main(ReadingFiles.java:13)

If you see the statements in BOLD in the above program you can able to understand that after setting the readOnly() flag of that file i have tried to write into that file "again". Thus this exception is thrown saying that "Access is Denied". So an important thing to be noted here is if you try to write into a read only file then this exception will be thrown.

Reason 3:

"In some cases, if the file that you are trying to access for read/write operation  is opened by another program then this error will occur".
Example:

import java.io.*;import jxl.*;import jxl.Workbook;import jxl.write.*;public class ExcelRead{public  static void main(String args[]) throws Exception{Cell b[]=new Cell[2];WritableWorkbook wbook12=Workbook.createWorkbook(new File("ReadExcelFile.xls"));WritableSheet sheet=wbook12.createSheet("First Sheet",0);Label l1=new Label(0,1,"Hello");Label l2=new Label(0,2,"World how are you ?");sheet.addCell(l1);sheet.addCell(l2);wbook12.write();wbook12.close();}}
Here what am I trying to do is to write some labels in to the "ReadExcelFile.xls" file. I thought that this would work fine. But when I execute this program I got this "FileNotFoundException". Later i found that it (ExcelRead.xls) has been opened in MicrosoftExcel Application. So in some cases this kind of errors do occur.
C:\harikrushnavblog>javac ExcelRead.java
C:\harikrushnavblog>java ExcelRead

Exception in thread "main" java.io.FileNotFoundException: ReadExcelFile.xls (The process cannot access the file because it is being used by another process)        at java.io.FileOutputStream.open(Native Method)        at java.io.FileOutputStream.(Unknown Source)
        at java.io.FileOutputStream.(Unknown Source)
        at jxl.Workbook.createWorkbook(Workbook.java:301)
        at jxl.Workbook.createWorkbook(Workbook.java:286)
        at ExcelRead.main(ExcelRead.java:11).
        at java.io.FileOutputStream.(Unknown Source)
        at jxl.Workbook.createWorkbook(Workbook.java:301)
        at jxl.Workbook.createWorkbook(Workbook.java:286)
        at ExcelRead.main(ExcelRead.java:11).
        at jxl.Workbook.createWorkbook(Workbook.java:301)        at jxl.Workbook.createWorkbook(Workbook.java:286)        at ExcelRead.main(ExcelRead.java:11).                at java.io.FileOutputStream.(Unknown Source)
        at jxl.Workbook.createWorkbook(Workbook.java:301)
        at jxl.Workbook.createWorkbook(Workbook.java:286)
        at ExcelRead.main(ExcelRead.java:11).
        at jxl.Workbook.createWorkbook(Workbook.java:301)        at jxl.Workbook.createWorkbook(Workbook.java:286)        at ExcelRead.main(ExcelRead.java:11).                at jxl.Workbook.createWorkbook(Workbook.java:301)                at jxl.Workbook.createWorkbook(Workbook.java:286)                at ExcelRead.main(ExcelRead.java:11).


Signals that an attempt to open the file denoted by a specified pathname has failed.


This exception will be thrown by the FileInputStreamFileOutputStream, and RandomAccessFile constructors when a file with the specified pathname does not exist. It will also be thrown by these constructors if the file does exist but for some reason is inaccessible, for example when an attempt is made to open a read-only file for writing.


Wednesday, 17 July 2013

Execute all test case if any fails in maven


There are couple of ways to do it ,


1. first is configure surefire with testFailureIgnore=true.


2. Second way is execute following line from the command line.

 mvn install -Dmaven.test.failure.ignore=true

Friday, 5 July 2013

Cannot complete the install because one or more required items could not be found.

Error While installing Maven in Eclipse


Cannot complete the install because one or more required items could not be found.
  Software being installed: m2e - Maven Integration for Eclipse 1.4.0.20130601-0317 (org.eclipse.m2e.feature.feature.group 1.4.0.20130601-0317)
  Missing requirement: Maven POM XML Editor 1.4.0.20130601-0317 (org.eclipse.m2e.editor.xml 1.4.0.20130601-0317) requires 'bundle org.slf4j.api 1.6.2' but it could not be found
  Cannot satisfy dependency:
    From: Maven Integration for Eclipse (Editors) 1.4.0.20130601-0317 (org.eclipse.m2e.editor 1.4.0.20130601-0317)
    To: bundle org.eclipse.m2e.editor.xml [1.4.0,1.5.0)
  Cannot satisfy dependency:
    From: m2e - Maven Integration for Eclipse 1.4.0.20130601-0317 (org.eclipse.m2e.feature.feature.group 1.4.0.20130601-0317)
    To: org.eclipse.m2e.editor [1.4.0.20130601-0317]



Solution :

1. Goto :
Help -> Install New Software
2. Add following URL in "Work with:"

http://download.eclipse.org/technology/m2e/releases/1.0

3. Follow the steps of installation and it will install successfully.



Tuesday, 25 June 2013

Java was started but returned exit code=13

Java was started but returned exit code=13

Cause of the Error :

This error mainly comes due when you execute the build of the Eclipse RCP.

Here I ‘m providing the probable solution to resolve this error.


This error mainly comes when there is error in the "Product Configuration".
So when this kind of error comes, try to create new "Product Configuration" and re generate the build of it.
Here are the steps to create the new "Product Configuration". Follow all the steps and generate the new Build and then try and check if it works ok or not.

How to Create new "Product Configuration" ?




Right click on project name, then select “New” -> “Other…”




Select “Plug-in Development” -> “Product Configuration”


Enter “File name:”


 



Select your project in “use an existing product:”






Click on Finish

 


Open “Dependencies” and click on “Add Required Plug-ins”



Right click on the project name and select “Export…”



Select “Plug-in Development” -> “Eclipse product”



Enter directory path in the “Directory” field


 

Tuesday, 4 June 2013

how to install window builder in eclipse ?



Before we start working on Eclipse RCP we required the Window builder. Windows builder is not necessary to create the Eclipse RCP application. Using Windowbuilder, designing the RCP application will be more easy and comfortable, so Here I explain the steps to install Window Builder inEclipse environment. It is very easy to add Windw builder plug-in in it. Following are the steps.
Goto “help” -> “Install New Software…”




Enter following URLs as per the version of the Eclipse :
Eclipse 3.7 (Indigo)
http://dl.google.com/eclipse/inst/d2wbpro/latest/3.7


Eclipse 3.6 (Helios)
http://dl.google.com/eclipse/inst/d2wbpro/latest/3.6


Eclipse 3.5 (Galileo)
http://dl.google.com/eclipse/inst/d2wbpro/latest/3.5



Click on “Next”



Click on “Next”


Select radio button for “I accept the terms of the license agreements”.
Click on Finish.
At the end (after installation completes), it will ask to restart the Eclipse. Click on Restart option and when it will start again, Window Builder will be there in the Eclipse environment.

How to check, the Window Builder is installed or not?
Right click on any Java file. Go to “Open With”. A Menu will appear, there you can see the option ”WindowBuilder Editor”.




It shows that Window Builder is successfully installed.

Following Books are good to Refer :

Monday, 3 June 2013

Bad : modifier in $ (/)

Error : Bad : modifier in $ (/)

Error occurrence :

$> setenv PATH $PATH:/data/data12/harikr/data45/

Bad : modifier in $ (/).

Solution :
$> setenv PATH ${PATH}:/data/data12/harikr/data45


Thursday, 23 May 2013

How to read a file in Java ?


package com.file.read;

import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;

public class ReadFileInJava {

public static void main(String[] args) {

BufferedReader buffRead = null;

try {

String eachLine;

buffRead = new BufferedReader(new FileReader("C:\\readfile.txt"));

while ((eachLine = buffRead.readLine()) != null) {
System.out.println(eachLine);
}

} catch (Exception e) {
e.printStackTrace();
} finally {
try {
/*
* close the BufferReader if there is any exception.
*/
if (buffRead != null)buffRead.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}

}
}

How to Create First Application for Eclipse RCP ?



How to Create First Application for Eclipse RCP ?
Go to File -> new -> Project …


Select “Plug-in Development” -> “Plug-in Project”

 Write down project name.
E.g. “MyFirstApp”.



 Select “Would you like to create rich client application?” to “yes”.
Press Next.







Select RCP mail template (we are taking somewhat complex application)



Click on “Finish”.



Here you see the basic in build example of Eclipse RCP.
Right click on “MyFirstApp” in “Package Explorer” and then click on “Run As” -> “Eclipse Application”.



You see the Application of mail box.




How to add custom features in your application that can be seen in next post…

Friday, 26 April 2013

Eclipse RCP error : java.lang.RuntimeException: No application id has been found.

eclispe RCP error :


!SESSION 2012-07-11 10:17:35.813 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.6.0_24
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Framework arguments:  -product test.product
Command-line arguments:  -product test.product -data /home/harik/workspace/sample/../runtime-test.product(5) -dev file:/home/harik/workspace/sample/.metadata/.plugins/org.eclipse.pde.core/test.product (5)/dev.properties -os linux -ws gtk -arch x86_64 -consoleLog

!ENTRY org.eclipse.equinox.app 0 0 2012-07-11 10:17:36.351
!MESSAGE Product test.product could not be found.

!ENTRY org.eclipse.osgi 4 0 2012-07-11 10:17:36.395
!MESSAGE Application error
!STACK 1
java.lang.RuntimeException: No application id has been found.


Solution :


Goto "Run->Run Configurations...", Select "Plug-ins" tab and click the "Add Reuired Plugin" button