FANDOM


m (minor reformatting)
(Remove html character entities)
 
(2 intermediate revisions by one user not shown)
Line 1: Line 1:
 
{{review}}
 
{{review}}
{{Tip
+
{{TipImported
 
|id=155
 
|id=155
|title=Decompile Java .class files automatically
+
|previous=154
|created=November 7, 2001 3:16
+
|next=156
  +
|created=November 7, 2001
 
|complexity=intermediate
 
|complexity=intermediate
 
|author=Lawrence Kesteloot
 
|author=Lawrence Kesteloot
 
|version=6.0
 
|version=6.0
 
|rating=9/7
 
|rating=9/7
|text=
+
|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).
 
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"))
 
 
}}
 
}}
  +
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).
   
== Comments ==
+
<pre>
It doesn't work when package is used in java code.
+
function s:ReadClass(dir, classname)
  +
execute "cd " . a:dir
  +
execute "0read !javap -c " . a:classname
  +
1
  +
setlocal readonly
  +
setlocal nomodified
  +
endfunction
   
Foo.java
+
autocmd BufReadCmd *.class
+
\ call <SID>ReadClass(expand("<afile>:p:h"), expand("<afile>:t:r"))
package com.foo.test;
+
</pre>
class Foo
+
{
+
==Comments==
+
It doesn't work when package is used in java code.
}
+
  +
<pre>
  +
Foo.java
  +
package com.foo.test;
  +
class Foo
  +
{
  +
  +
}
  +
</pre>
   
 
The question is how to save package information?
 
The question is how to save package information?
   
maxiangjiang--AT--hotmail.com
 
, November 7, 2001 10:14
 
 
----
 
----
For jad:
+
For jad:
au BufReadCmd *.class setl readonly nomodified | %!jad -p &lt;afile&gt;
+
au BufReadCmd *.class setl readonly nomodified | %!jad -p <afile>
 
   
do1--AT--yandex.ru
 
, March 6, 2006 4:06
 
 
----
 
----
<!-- parsed by vimtips.py in 0.654098 seconds-->
 
[[Category:Java]]
 

Latest revision as of 08:34, September 28, 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"))

CommentsEdit

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.