Binary Jar file?

How can we create binary Jar file in order to hide the code from the client?
Note that: The .xml and .html files are accessible/understandable in Jar file. I need somehow hidden this codes when deploy it.

Still couldn't find a solution for this.(Also review other fourms). Would appreciate any command on this.

Similar Messages

  • Binary JAR file format

    Hi out there,
    does anybody know where I can find the specification for the binary JAR file format?
    It doesn't follow the ZIP spec, there must be some additions.
    Here is my problem:
    I'm reading the 1. local file header, there compressed and uncompresed size is 0. Bit 3 of the
    general purpose bit flag is not set so there is no Data descriptor section and there should also be no
    file data section (size is 0, extra field also 0). But there are still some
    bytes until the next local file header starts. What are the bytes in between??
    Somewhere in the middle of the 2 local file headers is the 0x08074b50 signature, which is mentioned
    in the zip spec in combination with Spanned/Split archives !??
    If I'm reading a ZIP file generated with WinZip it is working fine, but when I'm reading a jar generated with
    the jar tool there are this mysterious bytes, which I cannot interpret.
    Thanks in advance for your help.
    Cheers,
    Steffen

    okay, guys just in case someone is interested (doesn't seem like, but anyhow):
    YES, the jar tool is not sticking exactly to the zip specification. I found out when I was
    browsing through the source code of the java distribution. The local file headers are not
    filled with the size information!
    Quote: * We'd like to initialize the sizes from the LOC, but unfortunately
    * some ZIPs, including the jar command, don't put them there.The solution for it, which I think is the standard for zip processing anyhow, is reading the
    central directory of the zip file first. There you get all info including also the size, etc. of the entries
    and also the offset to the local file header.
    The drawback is that it's a little more complex to read a file from the end and not from the beginning
    because you have to find the beginning of the central directory first, but well ...
    Okay, that's it. Have fun!

  • Error while deploying a JAR-File into 8i !

    Hello to all Oracle experts,
    At the attempt to deploy a Jar file into the 8i the following
    error message comes onto Shell level:
    initialization complete
    loading : com/sun/xml/tree/XmlDocumentBuilder
    ORA-01536: space quota exceeded for tablespace 'PROCON_DATA'
    Error while loading com/sun/xml/tree/XmlDocumentBuilder
    ORA-06502: PL/SQL: numeric or value error
    ORA-06512: at "SYS.DBMS_LOB", line 700
    ORA-06512: at "PROCON.LOADLOBS", line 1
    ORA-06512: at line 1
    creating : com/sun/xml/tree/XmlDocumentBuilder
    Error while creating class com/sun/xml/tree/XmlDocumentBuilder
    ORA-29509: incorrectly formed Java binary class definition
    The command was:
    loadjava -user procon/procon@t2srv1:1521:PROCON -thin -verbose -schema PROCON xml_un.jar
    It would please me if somebody has an idea to this error !
    null

    Hi Olivier,
    you could try the following approach:
    1. Package your JAR files as J2EE Engine libraries and deploy them on it as described here: <a href="http://help.sap.com/saphelp_nw04/helpdata/en/9f/2ade3fc6c6ec06e10000000a1550b0/frameset.htm">Working with J2EE Libraries</a>.
    2. Set reference to this library from the application that use them. Depending on your application, refer to the appropriate documentation:
    -- reference from a J2EE app -> see <a href="http://help.sap.com/saphelp_nw04/helpdata/en/15/d5d93fe80fed06e10000000a1550b0/frameset.htm">Referencing Libraries in Applications</a>
    -- reference from a portal app -> see <a href="http://help.sap.com/saphelp_nw04/helpdata/en/02/788540ae1dbb4de10000000a1550b0/frameset.htm">Referencing Elements</a>
    Hope that helps!

  • Using a JAR file as a project file

    My application allows the user to create projects. Previously, a project file was simply an XML file. Now, a project file needs to also contain many images.
    I thought it would be a good idea to simply use a JAR file as my project file.
    Since I've really never really worked with JAR files and the java.util.Jar package directly, I have a few questions.
    1) Would it be better just to simply store the images as binary in the XML file? I just spent a good amount of time making the XML file very readable so I thought it would be better to keep the images separate while still having a single "project" file.
    2) Is there anything inherently wrong with the way I'm working with the JAR file in the code below?
    Simple XML file:
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE project [
      <!ELEMENT project (img+)>
      <!ELEMENT img EMPTY>
      <!ATTLIST img src CDATA #REQUIRED>
    ]>
    <project>
         <img src="blah.jpg"/>
    </project>
    import java.io.*;
    import java.util.jar.JarFile;
    import javax.xml.parsers.*;
    import org.xml.sax.*;
    import org.xml.sax.helpers.DefaultHandler;
    public class LoaderTest {
        private String imageName;
        public LoaderTest() {
            InputStream i = null;
            JarFile jf = null;
            try {
                jf = new JarFile("project.jar");
                i = jf.getInputStream(jf.getJarEntry("project.xml"));
                // Here's my simple XML parser to load the project and images
                SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
                parser.parse(new InputSource(i), new DefaultHandler() {
                    @Override
                    public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
                        // Right now we only care about images
                        if (qName.equalsIgnoreCase("img")) {
                            imageName = attributes.getValue("src");
                // Load the image from the inputstream
                java.awt.image.BufferedImage img = javax.imageio.ImageIO.read(jf.getInputStream(jf.getJarEntry(imageName)));
                // Display the image in a JFrame
                javax.swing.JFrame f = new javax.swing.JFrame();
                f.setLayout(new java.awt.BorderLayout());
                f.setSize(800, 600);
                f.getContentPane().add(new javax.swing.JLabel(new javax.swing.ImageIcon(img)), java.awt.BorderLayout.CENTER);
                f.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
                f.setVisible(true);
            } catch (ParserConfigurationException ex) {
                ex.printStackTrace();
            } catch (SAXException ex) {
                ex.printStackTrace();
            } catch (IOException ex) {
                ex.printStackTrace();
            } finally {
                // Do our best to close the input streams
                if (i != null) {
                    try {
                        i.close();
                    } catch (IOException ex) {}
                if (jf != null) {
                    try {
                        jf.close();
                    } catch (IOException ex) {}
        public static void main(String[] args) {
            new LoaderTest();
    }Thank you!

    1) I also think it's much better to keep your images separate from your XML, this prevents a lot of in case you just want to read XML data
    2) What's exactly going wrong here? For the project.xml, make sure it's not inside a directory within the JAR file, or else the variable i will be null. Otherwise it looks fine..

  • Jar file is not working

    Hi,
    I have an Applet packed in a JAR file. It works very well in my local site, but when I upload it to internet it throws a java.lang.ClassNotFoundException: nibbly
    Of course I've checked names, cases, files are in the same directory.
    The html code is very simple:
    <APPLET ARCHIVE="nibbly.jar" CODE="nibbly.class"
    WIDTH=402 HEIGHT=350>
    </APPLET>
    Any help or advice would be appreciated.
    Thank you

    you can see the error in
    www.magnino.terra.cl/arch/nibbly.html
    I will check the "binary mode" of my FTP
    the nibbly.jar is in the same directory of the nibbly.html page
    thank you
    Luis

  • How to bundle java help class into jar file ?

    Hi, all,
    I have some package in my project, with which I have a java help jar file as classpath, when I run my project, I need the jh.jar file in directory /jar/jh.jar.
    Now, I bundled all my class packages into a jar file, my.jar, together with the /jar directory. When i run my jar file with command:
    java -jar my.jar
    It tells me couldn't find javahelp class.
    What shall I do? How can I create my jar file with the jh.jar?
    Thanks in advance.

    I think you'd be better off just adding the jh.jar as
    a classpath argument and running it like that:
    java -classpath /myjavalibdir/jh.jar -jar myjar.jar
    ...otherwise you're stepping into redistribution of
    binary issues licensing-wise. That won't work either; when you run java with the -jar option, it ignores both the -classpath option and the CLASSPATH environment variable. However, it will see jh.jar automatically if you put it in the <path-to-java>/jre/lib/ext directory. But for distribution purposes, it might be simpler just to combime the contents of jh.jar into myjar.jar (if you use Ant, its <jar> task makes that very easy). Or, you can just run it this way:java -classpath myjar.jar;jar/jh.jar MyMainClassBTW, I don't think redistribution is a problem; otherwise how anyone even use JavaHelp?

  • Jar files required to read excel file in SAP PI 7.3.1 sp09 dualstack

    Hi experts,
    I need to read excel file (.xls) using SAP PI and process it to target system. I have read blogs
    and found that there are 2 ways to read an excel file in PI using file adapter.
    1) Developing a custom adapter module
    2) Using XSLT code.
    So in order to develop a custom adapter module, i have followed the following blogs
    **************** - XI - Step-by-step guide to develop Adapter Module to read Excel file
    and
    Excel Files - How to handle them in SAP XI/PI (The Alternatives)
    and
    http://wiki.scn.sap.com/wiki/display/ABAP/Adapter+Module+To+Read+Excel+File+with+Multiple+Rows+and+Multiple+Columns
    I am unable to find the jar files in SAP PI at OS level as per the first blog(think they were obsolete).
    Please let me know
    1) What are the required jar files needed to read excel file and their location
    2) Even if i use the old jar files as mentioned in the first blog can i achieve my requirement
    3) Following this blog Convert incoming XML to Excel or Excel XML – Part 1 - XSLT Way if i apply the same logic at sender side, will it work? Because through case studies i came to know that we cannot read a .xls file using XSLT code. Correct me if i am wrong.
    Looking for your valuable suggestions.
    Regards
    Shilpa

    Hi Shilpa
    Welcome to SCN!
    The blog you refered to might be for previous versions of PI. You can refer to the following two wikis to find out what are the relevant JAR files for PI 7.3 and also how to get them.
    XI libraries for development - Process Integration - SCN Wiki
    Where to get the libraries for XI development - Process Integration - SCN Wiki
    It also looks like for newer versions, you might not need to manually get and add those JAR files into your NWDS project - please refer to the first comment on the blog below. I have not tried it personally as I'm not using the latest NWDS, but you can try that first, and if it does not work, then go get them manually.
    PI 7.4 - Adapter Module Creation using EJB 3.0
    Do note that you should be using the JAR files that is corresponding to your PI server version.
    As for your third question, that does not apply to you. XLS is the older non-XML format, and therefore cannot be read by XLST since it is in binary format.
    Rgds
    Eng Swee

  • Why can't I read any of my resources in a jar file?

    For an application I was developing, I wanted to create a Binary File using the following code:
    DataInputStream in = null;
            try {
                File file = new File(name);
                in = new DataInputStream(
                        new BufferedInputStream(
                            new FileInputStream(file)));
            } catch (FileNotFoundException e) {
                System.out.println("Non-existential File.");
                System.exit(0);
    }I am using Netbeans 6.5.1., and it groups my projects so that there are folders for build, src, dist, nbproject inside the project folder. The application that I am developing is a graphics demo that requires the use of several text files to represent the maps, so I wanted to read them using a FileInputStream.
    I kept this file, "islandmap.txt", in the src folder in my project. In the method above, I coded my program so that the "name" would be "src\islandmap.txt", and it read from the file perfectly. However, I needed to compile it to a Jar file too. After doing that, the program no longer functioned. I remembered when I used a tutorial long ago that used
    URL url = getClass().getClassLoader().getResource(fileName) ... in order to get the directory of the files. That made sense, because a person who is running the program via Java Webstart or a Jar Executable would definitely not have the parts of the program located in the same directory, so the code is used to find where the java program is. However, I realized something...
    File file = new File( - constructor - )There are four constructors for files, and I only think I could use two. The first is using a string, like I have done before with "src\islandmap.txt." Now, the URL url = getClass().getClassLoader().getResource(fileName) part, it was used before to locate a URL in order to open a buffered image. The constructor for File does not support URLs, but instead supports URIs.I tried converting between the two, changing a URL into a string, and producing a URI from the string. But it did not work, giving me an error that URI was not hierarchical. And that's when I realized that they were certainly not interchangable.
    More specifically, here is my code as of now:
    public boolean loadMap(String mapName) {
            String path = "src/islandmap.txt";   //This is where the map files are stored
            mapName = getClass().getClassLoader().getResource(path).getPath(); //getPath changes the URL into a String
            DataInputStream in = null;
            try {
                File file = new File(mapName);
                in = new DataInputStream(
                        new BufferedInputStream(
                            new FileInputStream(file)));
                 //code to actually read from the file goes here
            } catch (FileNotFoundException e) {
                System.out.println("Non-existential File.");
                System.exit(0);
            } finally {
                 //close in
    }So that is my problem now. I am stuck. For my purposes, I basically must use a stored text file within my jar, but I don't know how to read it. It distresses me that normally, I already know how to open images that are located inside my src folder using URLs, but not any other file requiring a File class to be wrapped within a Buffered Writer/Reader. Could somebody please assist me with this, or suggest an alternative that would also fall under my conditions? I would appreciate it so much. Thank you.
    Edited by: celestialsalt on Dec 6, 2009 5:29 PM
    Edited by: celestialsalt on Dec 6, 2009 5:49 PM

    Start with
    URL url = getClass().getClassLoader().getResource(fileName)Then observe that URL has a [openStream()|http://java.sun.com/javase/6/docs/api/java/net/URL.html#openStream()] method that will give you an InputStream. Since you are reading text you might want to create an InputStreamReader from which you can do your reading much like you used the FileReader before when you were working with a File.
    Class also has a [getResourceAsStream()|http://java.sun.com/javase/6/docs/api/java/lang/Class.html#getResourceAsStream(java.lang.String)] which combines the first two steps into one. Ie use getResource() as you mentioned when you want to get a URL that some other class will use to read (eg an image) or use getResourceAsStream() when you are going to do the reading yourself.

  • Include an in-memory jar file for JSR-199 compilation

    I want to compile a source file in memory, which requires a jar file that is also represented in memory. I used the JavaSourceFromString class recommended in the documentation for the class JavaCompiler and in a demo I found online that shows how to compile sources represented as String in memory. To represent the jar file, I used a similar trick to JavaSourceFromString:
    public class JarJavaFileObjectFromByteArray extends SimpleJavaFileObject {
       * The contents of this jar file.
      private final byte[] contents;
       * Constructs a new JarJavaFileObjectFromByteArray given the name and binary
       * contents of a jar file.
       * @param name the name of this jar file
       * @param contents the contents of this jar file
      public JarJavaFileObjectFromByteArray(String name, byte[] contents) {
        super(newURI(name), Kind.OTHER);
        this.contents = contents;
      ... // code not shown ensures that the URI returned from newURI is of the form,
          // for instance, bytes:///MathConstants.jar, if the name of the jar file is MathConstants.jar
      @Override
      public InputStream openInputStream() throws IOException {
        return new ByteArrayInputStream(contents);
    }However, I do not know how to alert the compiler that this jar file should be on the classpath. I tried this:
    List<String> options = Arrays.asList(" -classpath bytes:///MathConstants.jar ");
    CompilationTask task = compiler.getTask(null, fileManager, null, options, null, compilationUnits);but I get the following error when calling getTask:
    java.lang.IllegalArgumentException: invalid flag: -classpath bytes:///MathConstants.jarI assume there is some way to tell the compiler, "look at the MathConstants.jar file that I am storing in memory when searching the classpath", but I do not know how to do this. I assumed that the options parameter for getTask represents command-line flags that would be passed to the compiler if this were happening on the command line (such as "-cp .", which also does not work), but perhaps this assumption is wrong.

    Hi Bruce,
    I have a question regarding loading a jar file by the compiler to dynamically compile with a source file. I hope you can probably offer me an idea on what has been missing or wrong with the source codes I have written for my application.
    I am using Eclipse compiler to dynamically compile a class. In the class, I want it to make a reference to a jar file for compilation dynamically.
    Here is the source of a test class I wrote:
    import javax.servlet.http.HttpServlet;
    class MyServlet extends HttpServlet {
    }The import statement refers to the class javax.servlet.http.HttpServlet from the jar file C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\lib\\servlet-api.jar placed in the file system.
    In the method called compileClass (shown below), I used the path of the jar file to add to the option -classpath as you suggested.
         private static CompileClassResult compileClass(Writer out, String className, String classSource) {
              try {
                   JavaCompiler javac = new EclipseCompiler();
                   StandardJavaFileManager sjfm = javac.getStandardFileManager(null, null, null);
                   SpecialClassLoader scl = new SpecialClassLoader();
                   SpecialJavaFileManager fileManager = new SpecialJavaFileManager(sjfm, scl);
                   List<String> options = new ArrayList<String>();
                   options.addAll(Arrays.asList("-classpath", "C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\lib\\servlet-api.jar"));
                   List<MemorySource> compilationUnits = Arrays.asList(new MemorySource(className, classSource));
                   DiagnosticListener<JavaFileObject> diagnosticListener = null;
                   Iterable<String> classes = null;
                   if (out == null) {
                        out = new PrintWriter(System.err);
                   JavaCompiler.CompilationTask compile = javac.getTask(out, fileManager, diagnosticListener, options, classes, compilationUnits);
                   boolean res = compile.call();
                   if (res) {
                        //Need to modify the api to return an array of two elements - one classes and other bytecodes for all classes in the same class file.
                        return CompileClassResult.newInstance(scl.findClasses(), scl.findByteCodes());
              } catch (Exception e) {
                   e.printStackTrace();               
              return null;
         }I also extended the class ForwardingJavaFileManager as you suggested and have it delegated to the StandardJavaFileManager sent to the compiler mentioned in the method compileClass above. The extended class (called SpecialJavaFileManager) is as follows:
    public class SpecialJavaFileManager extends ForwardingJavaFileManager<StandardJavaFileManager> {
         private SpecialClassLoader xcl;
         public SpecialJavaFileManager(StandardJavaFileManager sjfm, SpecialClassLoader xcl) {
              super(sjfm);
              System.out.println("SpecialJavaFileManager");
              this.xcl = xcl;
         public JavaFileObject getJavaFileForOutput(Location location, String name, JavaFileObject.Kind kind, FileObject sibling) throws IOException {
              System.out.println("getJavaFileForOutput");
              MemoryByteCode mbc = new MemoryByteCode(name);
              xcl.addClass(name, mbc);
              return mbc;
         public Iterable<JavaFileObject> list(JavaFileManager.Location loc, String pkg, Set kinds, boolean recurse) throws IOException {
              System.out.println("list ");
            List<JavaFileObject> result = new ArrayList<JavaFileObject>();
            for (JavaFileObject f : super.list(loc, pkg, kinds, recurse)) {
                 System.out.println(f);
                result.add(f);
              return result;
    }I run the application and the result shows that it didn't load the jar file into the memory as expected. From the output (below) I got, it doesn't seem to invoke the method list(...) in the class SpecialJavaFileManager.
    SpecialJavaFileManager
    1. ERROR in \MyServlet.java (at line 1)
         import javax.servlet.http.*;
                ^^^^^^^^^^^^^
    The import javax.servlet cannot be resolved
    2. ERROR in \MyServlet.java (at line 3)
         class MyServlet extends HttpServlet {
                                 ^^^^^^^^^^^
    HttpServlet cannot be resolved to a typeWould you please let me know what has possibly be missing or wrong?
    Thanks.
    Jonathan
    Edited by: jonathanlam on Aug 10, 2009 6:47 PM

  • Jar file issue. EXCEPTION: java.lang.UnsatisfiedLinkError

    Hey all,
    i'm writing an application that connects to Oracles SCM. I use a lot of the oracle SCM library. Anyway, my application running in oracles jDeveloper works just fine. However when i deploy it to an executable jar file i get the above exception. In the deployment settings i have tried both using the dependency analyzer and including all content. I have selected all libraries that are used in running it within jdeveloper for the deployment. I have posted to the SCM forumn but noone there has any ideas so just wondering if its a problem with jdeveloper or if its just something stupid i've done.
    find the below the full exception im getting when i run the executable jar file. i'd appreciate any ideas/suggestions anyone may have
    cheers
    paul
    Exception occurred during event dispatching:
    java.lang.UnsatisfiedLinkError: TnsAliasToAddress
    at oracle.repos.helpers.environment.OSEnv.TnsAliasToAddress(Native Method)
    at oracle.repos.services.connection.RepositoryConnectDetails.parseConnect(RepositoryConnectDetails.java:365)
    at oracle.repos.services.connection.RepositoryConnectDetails.<init>(RepositoryConnectDetails.java:74)
    at oracle.repos.services.connection.RepositoryConnection.<init>(RepositoryConnection.java:368)
    at ess.ant.scm.ValidateUser.validate(ValidateUser.java:44)
    at ess.ant.scm.ConnectionFrame.connect_actionPerformed(ConnectionFrame.java:175)
    at ess.ant.scm.ConnectionFrame$1.actionPerformed(ConnectionFrame.java:89)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1450)
    at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1504)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:378)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:250)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:216)
    at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:230)
    at java.awt.Component.processMouseEvent(Component.java:3715)
    at java.awt.Component.processEvent(Component.java:3544)
    at java.awt.Container.processEvent(Container.java:1164)
    at java.awt.Component.dispatchEventImpl(Component.java:2593)
    at java.awt.Container.dispatchEventImpl(Container.java:1213)
    at java.awt.Component.dispatchEvent(Component.java:2497)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:2451)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:2216)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2125)
    at java.awt.Container.dispatchEventImpl(Container.java:1200)
    at java.awt.Window.dispatchEventImpl(Window.java:926)
    at java.awt.Component.dispatchEvent(Component.java:2497)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:339)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:131)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:98)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:85)

    This tutorial page for JNI API describes how and where Java looks for the dynamic libraries:
    http://java.sun.com/docs/books/tutorial/native1.1/stepbystep/_library.html
    And this is the home page of Java Native Interface (JNI) API:
    http://java.sun.com/j2se/1.4/docs/guide/jni/index.html
    I have tried putting my executable jar in the same folder as
    this dll and including the dll in my path but both to no avail.Again: you mix binary code and JVM byte code. They are loaded
    differently and located differently. classpath means nothing for the binary code.
    "The Win32 VM uses a search path that includes the current directory for the process or one of the directories listed in the PATH environment variable"
    The DLL may be either in the folder where the application (the JRE/JDK) runs, that is where java.exe is, or some other directory on the system PATH (according to the PATH system variable).

  • Is it Possible to Change the Jar File Names After Downloading at Client

    Hi. All
    Here I am tring to Rename Jar file Names once after JWS Downloads at Client Place. But I don't know how to do this. I Searched in so many Blogs and Forums, but i failed to get Solution for this. As when JWS downloads Jars from server, its changes file names (prefixes with "RM" and "RT"). So same way i want to change once after it downloads files. Can any body tels how to dot this. Really ... Help is appriciated
    Thnx a lot for reading the above
    Sreedhar P

    Note from other posts:
    The content and format of the cache will and do change from version to version of javaws. It is highly unadvisable to build into you application relying on the location or format.
    That being said, for 1.4.2 or 1.5.0, the location was as given: "C:\Documents and Settings\<UserID>\Application Data\Sun\Java\Deployment\cache\javaws", and in long path below that depending on the URL of the resource.
    For version 6, the cache is in : "C:\Documents and Settings\<UserID>\Application Data\Sun\Java\Deployment\cache\6.0" and then in a directory below that named "0" thry "63", depending on the hash of the URL of the resource. The name will be completely obscure, there will be one binary index file with "idx" extension, and then the actual resource will be the file of the same name w/o any extension.
    /Andy

  • How to verify existence/absence of debug information in a jar file

    Given a jar, how can I tell if it contains debug information or not? Is there a tool for this? (e.g, like the 'file' utility on linux, which outputs whether an ELF executable is stripped or not)
    Amit

    I'm not saying it's pretty... but there's a horrible quick & dirty way of checking for debug info
    Typically the debugging information is stored is special attributes in the class files, like "LineNumberTable", "LocalVariableTable" etc.
    Depending on which type of debugging setting was used to compile the source code, these will be present in the binary class file.
    So, you might unjar the contents of the jar and run eg.
    find "LineNumberTable" *.class
    to find all classes with line number information.
    I tried it on a sample class and it worked for me here.
    Hey, I know it's a hack, but not everyone has time to write a full disassembler !
    regards,
    Owen

  • MIME encode a jar file

    Hello to all,
    I want to place a jar file into the XML for transmission over network. I know that i need to encode the jar file for placing it into the XML since jar file is a binary data. Does any one have any idea idea how to MIME encode a jar file and then put the encoded jar file into an XML for transmission.
    Thanks & Regards,
    Girish

    Look down a few posts to the MediaTracker question. Basically you should use the getResource method to grab a URL to a file in your jar file. Then you can pass the URL to whatever method you're calling like getImage().
    URL myURL = MyClass.class.getResource("myfile.gif");

  • Signing Bouncy Castle or third party provider's jar file with signtool

    Hi,
    I am using JDK 1.4.2 and bouncy castle as a provider for RSA.
    It worked fine until recently when my company asked me to compile and build the jar from the source code from bouncy castle, instead of using the binary version provided in their website.
    But I only have a certificate obtained from Verisign. So I used signtool 1.3 from netscape to sign the jar file, which could be verified by jarsigner. But when use this one signed by my company's certificate. it didn't work. The exception is
    java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSA/
    ECB/PKCS1Padding
    at javax.crypto.Cipher.getInstance(DashoA6275)
    When I switch back to the signed jar file provided by bouncy castle, everything worked ok again.
    It looks that jar file is not recognized properly.
    Can anyone tell me if I can use the signtool to sign the provider's jar file? Or I have to sign with jarsigner?
    Thanks for the help.

    Thanks for your reply.
    I am reluctant to use the lightweight crypto API
    becaues it will be difficult to switch to anther
    service provider.True. However, if you switch to another Provider, you'll have the same trouble you're having with BC regarding rebuilding from source.
    In BC's website, they don't have "cleanroom" JCE
    listed for JDK 1.4
    Can you give some resource for that?Hmmm - no, I can't. I haven't needed the cleanroom impl, so I stopped paying attention to it. I do't know if BC is working on a 1.4-compatible one or not. You might post a note to the dev-crypto mailing list BC runs.
    Can I sign BC's jar file by my JCE certificate if I
    obtain one from SUN?Unless you're recognized by Sun as a company that does significant security development, you will NOT get a security-signing cert. Several of us have already made the attempt.
    The net is, what your bosses are asking for is unreasonable, and is preventing you from getting your job done. If they continue to insist that you build your security code from source, then your CANNOT use the JCE structure, period. In that case, you might as well use the BC lightweight API.
    Grant

  • Accessing ressources in jar file

    Hi,
    I need some help with jar files, please.
    The concept of jar files is quite new to me and I din't fully unterstand it yet I guess...
    I'm loading an image by
    ImageIcon image = new ImageIcon("image.gif");
    now I'd like to pack that image into a jar file, for simplifying reasons when using more files, which is not the problem, so far.
    But how can I access that file then in my java programm?
    Do I have to use the JarFile.getInputStream() method or what?
    Is there no 'easier' way, avoiding Streams and Readers?
    Can I hand over the JarEntry of my gif file to the ImageIcon constructor
    somehow instead of the file?
    Thanks for help..

    I guess you've set me on the right course, but I am
    afraid I don't really understand the concept of those
    class loaders, either.
    I read the part on jar files and extensions in the
    java tutorial(and therefore on class loaders, too),
    but I still don' get it.JAR Files and classloaders are two different concepts. The JAR file is merely a packaging method for Java code. Classloaders on the other hand, are the way the JVM finds the code classes. All a classloader does is load binary data from somewhere and pass it to the JVM for execution. See http://java.sun.com/j2se/1.4/docs/api/java/lang/ClassLoader.html for more info.
    The relevant code part we're talking about here is
    used in a class extending JPanel , so thats what you
    get by performing getClass(), the running instance of
    a JPanel subclass.
    but obviousely there is no getResource() method in
    that type of class.Really? http://java.sun.com/j2se/1.4/docs/api/java/lang/Class.html#getResource(java.lang.String)
    Of course, Object.getClass().getResource() is just a convienence method for Object.getClass().getClassLoader().getResource(). Just as the ClassLoader can load the binary data that creates a Class object that lends itself to the execution of the Object you're loading, it can load other forms of binary data from the same location.
    what I don't understand is: where does this method
    come frome? do I have to add somehow a classlistener
    instance to my class? or add an implementation in the
    code of my class, providing a getResource method? A Class object (See http://java.sun.com/j2se/1.4/docs/api/java/lang/Class.html) is merely a "wrapper" object that represents the running code. It exposes the methods and fields for access. Normally Class is used behind the scenes, but it can be used to execute dynamically loaded code.
    You don't need to "add" a classloader. A classloader loaded the code that you are running. When it loads the class, it stamps it with its signature so that you know who loaded it.
    I guess you see now I really have no idea how the
    classloader system works ;)
    (and believe me I'm not asking dumb questions berfore
    trying to solve the prob by myself....)
    Thanks for any additional helpNo prob. :-)

Maybe you are looking for

  • Possible to do case-insensitive searches?

    G'day, I was wondering if it's possible to do case-insensitive searches in oracle/HTMLDB? I've tried what I thought would work "select * from application where name like '%microsoft%'", this unfortunately doesn't return any records with a capital in

  • I am no longer able to launch Flashplayer after downloading update successfully from V.10.3 to 11.4

    I am using 1yr.old HP machine w/WindowsVista 64Bit system and IE9 -Any suggestions?

  • NON-ASCII

    Is there any way to search a non-ascii(that is not in the keyboard ) character from a string???

  • Xview font error in Solaris 8

    Hello, When we run the command #> cmdtool -fn '-adobe-symbol-medium-r-normal--14-140-75-75-p-85-adobe-fontspecific' in Solaris 8, we get the following Xview problem: "XView warning: Cannot load font set '-adobe-symbol-medium-r-normal--14-140-75-75-p-

  • Iphone 4 reset question

    Every now and then I like to start over and factory reset a device and start over. I a noticing lots of people saying that IOS7 is really bad. Now I am having no issues but on the odd occasion there is some lag, overall though I am very happy. My que