In CS I have been taught other programming languages than java. Now in final year project they are demanding project in java. So is there an easy technique to learn java fast?
There is a Pedagogical Pattern called Fixer Upper that can be used for this purpose.
Prepare a fairly large Java program that includes the features you want them to use. In this case it would probably be best if they know how to write that program in their "native" programming language: a familiar seeming project.
Then insert several errors into the program of various kinds. Some of them just simple syntax errors but some of them more complex, even some that break the program so that it doesn't quite solve the problem correctly.
Give them an assignment to fix the program.
If you combine this with unit testing, which they may already know, it will give them some additional practice and skill. If you want them to do the fix-up especially fast, make it a pair-programming exercise.
I normally use this sort of thing as a quick start for a new programming language or even for complete novice programmers.
Make sure that the overall structure of your program is very good. If it isn't, then they will learn the wrong lessons. Start with a structure that you want them to emulate.
A variation on this is to take such a program and go through it in lab rather than making it homework.
Note that reading a large program is insufficiently "active" to achieve the desired outcomes. Having to repair it will engage the students more deeply into both the problem and the language.
My ideal program for this would be several pages long and would include several classes. It would use a variety of design techniques, including a few design patterns. It would favor composition over inheritance as the mechanism for variability. It would define structure with interfaces.
A major variation of this is that the fixer-upper program could, itself, form the core of the project the students will do. Now the students are truly engaged from the start.