(Uploaded by JohnBot from a locally edited file)
(Remove html character entities)
 
(One intermediate revision by one other user not shown)
Line 9: Line 9:
 
|version=6.0
 
|version=6.0
 
|rating=9/7
 
|rating=9/7
  +
|category1=Java
  +
|category2=
 
}}
 
}}
 
Here's a plugin to automatically decompile Java .class files as they're read in. Tweak the javap flags for what you want to see. I didn't post this as a script because it's too simple and it's really more useful for demonstrating how to read decompilable files (or other binary files that can be converted to text).
 
Here's a plugin to automatically decompile Java .class files as they're read in. Tweak the javap flags for what you want to see. I didn't post this as a script because it's too simple and it's really more useful for demonstrating how to read decompilable files (or other binary files that can be converted to text).
Line 22: Line 24:
   
 
autocmd BufReadCmd *.class
 
autocmd BufReadCmd *.class
\ call <SID>ReadClass(expand("<afile>:p:h"), expand("<afile>:t:r"))
+
\ call <SID>ReadClass(expand("<afile>:p:h"), expand("<afile>:t:r"))
 
</pre>
 
</pre>
   
Line 41: Line 43:
 
----
 
----
 
For jad:
 
For jad:
au BufReadCmd *.class setl readonly nomodified | %!jad -p &lt;afile&gt;
+
au BufReadCmd *.class setl readonly nomodified | %!jad -p <afile>
   
 
----
 
----
[[Category:Java]]
 

Latest revision as of 08:34, 28 September 2008

Tip 155 Printable Monobook Previous Next

created November 7, 2001 · complexity intermediate · author Lawrence Kesteloot · version 6.0


Here's a plugin to automatically decompile Java .class files as they're read in. Tweak the javap flags for what you want to see. I didn't post this as a script because it's too simple and it's really more useful for demonstrating how to read decompilable files (or other binary files that can be converted to text).

function s:ReadClass(dir, classname)
  execute "cd " . a:dir
  execute "0read !javap -c " . a:classname
  1
  setlocal readonly
  setlocal nomodified
endfunction

autocmd BufReadCmd *.class
  \ call <SID>ReadClass(expand("<afile>:p:h"), expand("<afile>:t:r"))

Comments[edit | edit source]

It doesn't work when package is used in java code.

Foo.java
package com.foo.test;
class Foo
{

}

The question is how to save package information?


For jad:

au BufReadCmd *.class setl readonly nomodified | %!jad -p <afile>

Community content is available under CC-BY-SA unless otherwise noted.