Bytecode in the .Jar
Words by Benjamin Newman
TTTO Whiskey in the Jar

(capo 2) G Em As I was looking over a website wise and witty C G I saw a Java applet there whose graphics were so pretty G Em So I unzipped the archive, but no source code was inside her C G I said: Stand and deliver, for I've got a decompiler! D public static void main(String[] args) G Hide all your source away C I'll find it anyway -- G D G There's bytecode in the .jar! G Em I opened up the files and renamed the function headers C G But the logic was so clean I couldn't make it any better G Em So I changed the attribution and made out I was the author C G All supposing any applet can't be told from any other D public static void main(String[] args) G I'll claim this code is mine C A lie on every line G D G There's bytecode in the .jar! G Em Next week I got an email from the author of the applet C G And she said: I know you stole it and I know just how you hacked it G Em For you tried to change the headers but your changes were too sloppy C G And the call graph is a perfect match which proves your code's a copy D public static void main(String[] args) G Try stealing code from me C It's plain for all to see G D G There's bytecode in the .jar! G Em Well, I hoped my bit of thieving wouldn't do more than annoy her C G But the email that she sent me also went to my employer G Em And they told me when they fired me: That sure was a stupid gamble C G With this black mark on your record your career will be in shambles D public static void main(String[] args) G It's time this loser leaves C We won't consort with thieves G D G There's bytecode in the .jar! G Em Now my reputation's toast just like it sank in molten lava C G I'll make no more foolish boasts and I won't ever write in Java G Em And I'll take nobody's code that doesn't say it's for the taking C G For I thought I'd get away with it but sure I was mistaken D public static void main(String[] args) G The moral of this tale: C Code theft's an epic fail G D G There's bytecode in the .jar!