Q:

Bash shell function error : command not found

I am new to bash so please bear with me if this is a dumb question :
What I actually want to type in the shell is like this:
javac -classpath "emarket.jar" Testclient.java -Xlint:unchecked

The fact is, if I manually type the above line into bash, it executes with no error. 
However, if I craft a customized function in .bashrc like this:
function compile() { 'javac -classpath "emarket.jar" '$@'.java -Xlint:unchecked';}

And issue this command in bash:
compile Testclient

It gets to an error saying that :

bash: javac -classpath "emarket.jar" Testclient.java -Xlint:unchecked: command not found

I reckon the function compile() in .bashrc should generate the same command in bash, but I really cannot get through this, can anyone help me?  Many thanks in advance! 

A:

remove the single quotes surrounding the whole command, and use double quotes around $@
function compile() { 
  javac -classpath "emarket.jar" "$@".java -Xlint:unchecked;
}

see here for quoting variables examples.