24. november 2004 - 21:18Der er
19 kommentarer og 1 løsning
Obfuscator af .jar filer
Jeg leder efter en Obfuscator eller tilsvarende der kan få min .jar filer til at fylde mindst muligt. Jeg har prøvet et par stykker gratis/opensource projekter, men oplevede at de genererede fejl. Er der nogen der kender et program eller to som de har gode erfaringer med? Det skal være gratis og kunne arbejde direkte på en .jar fil.
Jeg har brugt JMangle og ProGuard. Jeg har set 2 fejl ved JMangle gennem tiden og jeg har brugt den meget. ProGuard blev prøvet og virkede i det ene af de to tilfælde.
Hvilke har du prøvet og hvilken slags fejl fik du ?
Om de kan arbejde direkte på en jar fil eller ej er vel ikke så vigtigt. Man kan da altid lave en 3 liniers bat fil med jar xvf obfuscate jar cvf
Proguard ser lovende ud. Jeg har dog nogen problemer. Efter en obfuscation har den ikke ændret min manifest fil med Main-Class til at pege på det nye klassenavn. Godt, jeg sætte den til ikke at røre Main-Class, men nu får jeg "Fatal Exception occured" når jeg dobbeltklikker på min obfuscated .jar fil. Hvad kan være gået galt?
Ja tak. Jeg fandt dog andre problemer. Obfuscator smadrede noget af min koden, bla. en CellRenderer klasse. Det eneste jeg kan få til at virke er shrinking. Syntes der er problematisk at jeg er nød til at test hele min applikation. Men jeg er kommet i gang, kigger på nogen andre når jeg får tid.
Ja det ved jeg ikke rigtig. Jeg extender fra Component og implementerer ListCellRenderer og ved første oprettelse får jeg følgende fejl:
Exception in thread "main" java.lang.ClassCastException: dk.stigc.JavaTunes.aj at dk.stigc.JavaTunes.n.getListCellRendererComponent(Unknown Source) at javax.swing.plaf.basic.BasicListUI.updateLayoutState(Unknown Source) at javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(Unknown Sou rce) at javax.swing.plaf.basic.BasicListUI.getPreferredSize(Unknown Source) at javax.swing.JComponent.getPreferredSize(Unknown Source) at javax.swing.JList.getPreferredScrollableViewportSize(Unknown Source) at javax.swing.ViewportLayout.preferredLayoutSize(Unknown Source) at java.awt.Container.preferredSize(Unknown Source) at java.awt.Container.getPreferredSize(Unknown Source) at javax.swing.JComponent.getPreferredSize(Unknown Source) at javax.swing.ScrollPaneLayout.preferredLayoutSize(Unknown Source) at java.awt.Container.preferredSize(Unknown Source) at java.awt.Container.getPreferredSize(Unknown Source) at javax.swing.JComponent.getPreferredSize(Unknown Source) at javax.swing.plaf.basic.BasicTabbedPaneUI$TabbedPaneLayout.calculateSi ze(Unknown Source) at javax.swing.plaf.basic.BasicTabbedPaneUI$TabbedPaneLayout.preferredLa youtSize(Unknown Source) at java.awt.Container.preferredSize(Unknown Source) at java.awt.Container.getPreferredSize(Unknown Source) at javax.swing.JComponent.getPreferredSize(Unknown Source) at java.awt.GridBagLayout.GetLayoutInfo(Unknown Source) at java.awt.GridBagLayout.getLayoutInfo(Unknown Source) at java.awt.GridBagLayout.preferredLayoutSize(Unknown Source) at java.awt.Container.preferredSize(Unknown Source) at java.awt.Container.getPreferredSize(Unknown Source) at javax.swing.JComponent.getPreferredSize(Unknown Source) at javax.swing.plaf.basic.BasicSplitPaneUI$BasicHorizontalLayoutManager. getPreferredSizeOfComponent(Unknown Source) at javax.swing.plaf.basic.BasicSplitPaneUI$BasicHorizontalLayoutManager. getPreferredSizes(Unknown Source) at javax.swing.plaf.basic.BasicSplitPaneUI$BasicHorizontalLayoutManager. resetToPreferredSizes(Unknown Source) at javax.swing.plaf.basic.BasicSplitPaneUI$BasicHorizontalLayoutManager. layoutContainer(Unknown Source) at java.awt.Container.layout(Unknown Source) at java.awt.Container.doLayout(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validate(Unknown Source) at java.awt.Window.show(Unknown Source) at java.awt.Component.show(Unknown Source) at java.awt.Component.setVisible(Unknown Source) at dk.stigc.JavaTunes.JavaTunes.main(Unknown Source)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.