Your regex attempt looks as though you'll find careful reading of perldoc perlre and perldoc perlretut and/or the regex tuts here useful. "Mastering Regular Expressions" would be a good followup; "Regular Expressions Pocket Reference" would often be helpful.
in reply to extract file name from path
That said, one fairly direct route would be a lookahead -- which tells the regex engine you want to accept matches until the match would be what's in the lookahead... in this case, app/:
$line =~ m|.+(?=app/)(.*)\s--javaproc|
In other words, match 1 or more of anything (dot-plus) until there's a match on app/ and then capture up until the space before the --javaproc. Note that there's no need to escape the slashes in the patch when using alternate regex delimiters.
Update: eliminating the ".java" (per OP's spec) is left so there's some learning exercise left here.