Include metainformation (My version number) into a java class file???

Hy
It is possible to include metainformatins like the versions number to a java class file?
I think at the way of the VB6 programmers. The generated exe file contain a rigth click menu (Win Explorer) which shows the mettainformations from the developer (copyright, author, version number of the class file).

The windows version info is specific to windows compound files, where the info is incuded as part of the file. Java is platform neutral, and doesn't support windows binary specific metadata (just like you can't add version info to a text file in windows). Other os's allow metadata that is seperate from the binary format of the file, so do not suffer from this limitation.
Distributing your jar as a self extracting exe for windows will allow this info to be added.
Pete

Similar Messages

  • Determine the Java Class File Major & Minor Version

    Did anyone tried to look at the Major & Minor version of a specific java class file.
    Our server is running in version 1.3. We are including a third party class file, I like to check before our production move, whether the file is compiled is <= Jdk1.3.
    Thanks in Advance.

    // 1) Download Jakarta BCEL
    // 2) compile this class
    import org.apache.bcel.classfile.*;
    public class Main
         public static void main(String[] args) throws Exception
              printClassVersion("c:\\foo.jar", "com/foo/Bar.class");
         public static void printClassVersion(String jarfile, String classfile) throws Exception
              ClassParser cp = new ClassParser(jarfile, classfile);
              JavaClass clazz1 = cp.parse();
              System.out.println(jarfile);
              System.out.println("Major: " + clazz1.getMajor());
              System.out.println("Minor: " + clazz1.getMinor());
    }

  • Putting unix utility visible version info into ear, war, jar files?

    I would like to be able to use some unix utility (or java itself without a separate program) to display my version information for jar-like artifacts: ear, war, jar.
    In other words, when I build one of these things, I'd like to put my SVN version, date, user name, and maybe some other stuff into it in a way that can be read without a custom program. This needs to be done as part of the ant build (without requiring a custom java program).
    For example, one approach would be "strings | grep <special-string>" if I could put something, somewhere in the file that had this as 8-bit character encoding.
    For jars, making the jar executable and having the main print it out works, but I don't think that's do-able for ears and wars, and it would be desirable to have a consistent approach.
    Anyone already doing this?
    Ideas?

    For example, I don't think you can specify a mainline in the manifest of an ear or war.
    They have pretty strictly defined formats, and I don't want to risk violating a standard by tinkering outside the standard.Possible, but you can always run it as java -cp myWar.war my.utility.Version.
    There may be another possibility, but I'm unable to find any reference though:
    In my early Java days, I used to work on a system where there was a Unix utility (called something like +"ident"+) that was able to extract version and description info stuffed in a .so file (under which "standard" or proprietary format was the info stored, I don't know).
    I used to see it work on individual Java .class files too (from memory we had to put a String constant name "VERSION" in the class) and maybe jar files (I'm unsure).
    One of my co-workers at that time had described that as a standard tool, but "ident" turns up nothing of that kind on Google... And I've never since encountered any description of the "VERSION" constant naming convention...
    I was young and naive, I hope I were not bluffed by some alias in a custom setup... :o(
    Edited by: jduprez on Feb 18, 2010 11:30 AM
    OK a bit more reserah turned up [that man page|http://man-wiki.net/index.php/1:ident]. Apparently ident is part of RCS (installed along with CVS), and works by grepping the target file for patterns such as "$keyword: text $" (which is RCS/CVS keyword substitution pattern). Now that it mentions it, I remeber that that's what we put into our VERSION constant's value ("$version : ...$", or something of that kind).
    So:
    1) it's not so standard after all, you have to install the rcs package on the target host (regardless of whether you use RCS for configuration management, which would probably be a bad idea nowadays)
    2) you have to put such formatted strings somewhere in your code or configuration files (easy with Ant, if not genuinely through Subversion)
    3) To have it work on jar, war, ear, files, you have to make sure that the file is not compressed (otherwise the pattern might not appear in clear). I don't know whether that's easy to configure using Ant's jar, war, ear tasks.
    A bit of a hassle compared to stuffing your own utility class and using java -cp...

  • Help! How to read a .txt file into a Java class and make 2D array?

    Hi guys,
    Im a newbie with arrays, just started really using them.. please bear with me if I don't seem to understand much..
    I have a .txt file that contains either a square or rectangle (random width and length).. How can I read each line into a Java class into a 2D array with rows and columns?

    Example :
    import javax.swing.*;
    import java.util.ArrayList;
    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.File;
    public class ReadInto2DArrayExample {
        public static void main(String[] args) {
            ArrayList array = new ArrayList();
            char [][] twoDimesionArray = null;
            try
                JFileChooser fileChooser = new JFileChooser();
                if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION)
                    File file = fileChooser.getSelectedFile();
                    BufferedReader reader = new BufferedReader(new FileReader(file));
                    String data;
                    //Read from file
                    while ((data = reader.readLine()) != null)
                        //Convert data to char array and add into array
                        array.add(data.toCharArray());
                    reader.close();
                    //Creating a 2D char array base on the array size
                    twoDimesionArray = new char [array.size()][];
                    //Convert array from ArrayList to 2D array
                    for (int i = 0; i < array.size(); i++)
                        twoDimesionArray[i] = (char [])array.get(i);
                    //Test the 2D Array
                    for (int y = 0; y < twoDimesionArray.length; y++)
                        char [] temp = twoDimesionArray[y];
                        for (int x = 0; x < temp.length; x ++ )
                            System.out.print(temp[x]);
                        System.out.println("");
            catch (Exception ex)
                ex.printStackTrace();
    }

  • Getting the Test Stand version number of an old sequence file

    A customer wants a small change to a previous deployment.
    They have returned the original sequence file to me but the deployment is about two years old.
    Is there anyway that I can get the TestStand Version number from the old sequence file so that I will know which version to save it in.
    I am currently using TestStand 4.2.1.83. 
    Thanks,
    Sean
    Solved!
    Go to Solution.

    As Sean stated back in 2010, you can also read the version number in clear text. You can read some parts of the file in a text editor, the version number is one of those....
    Norbert
    CEO: What exactly is stopping us from doing this?
    Expert: Geometry
    Marketing Manager: Just ignore it.

  • Where to place an xml file that is read by  java class file  dir structure

    Hello all,
    I have an xml file that I am using in lieu of a database to track conference rooms . This is a small file. I need to read this file from my java class file which is used by a jsp. Currently I have an absolute path C://logger/conference.xml. All works fine but I need to deploy to a different machine soon and so I need to place this file somewhere in the project directory structure (created by netbeans) so that it will be included in the war file and can be read by the java class file.
    Also what would be the relative path to this suggested directory.
    TIA!!!

    public class DOMconference {
        /** Creates a new instance of DOMconference */
        public DOMconference() { }
        //private final static String XML_FILE_NAME = "/opt/conference.xml";//set the output file and location
        public String XML_FILE_NAME = "";
        private final static String FIRST_CONF_ID = "8200";//set the initial conference number
        static Document document;
        public void getFilePath(String path)
            XML_FILE_NAME = path.replaceAll("\\\\","/");
            System.out.println("XML==============="+XML_FILE_NAME);
        File file = new File(XML_FILE_NAME);
        *generic method that returns a Document object
       public Document getDocument() throws SAXException, ParserConfigurationException,
               IOException
           DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
           factory.setIgnoringComments(true);
           factory.setCoalescing(true);
           factory.setNamespaceAware(false);
           factory.setValidating(false);
           DocumentBuilder builder = factory.newDocumentBuilder();
           document = builder.parse(file);   //HERE IS WHERE THE ERROR POINT S TO
           return document;
       }Here is the complete error:
    INFO: Server startup in 1282 ms
    XML===============C:/Documents and Settings/gforte/agi/build/web/WEB-INF/conference.xml
    [Fatal Error] bin:1:1: Content is not allowed in prolog.
    org.xml.sax.SAXParseException: Content is not allowed in prolog.
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:264)
    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:292)
    at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:172)
    at agi.DOMconference.getDocument(DOMconference.java:91)
    at agi.DOMconference.getLdapConferences(DOMconference.java:466)
    at agi.Ldap.getConferences(Ldap.java:243)
    at org.apache.jsp.test_jsp._jspService(test_jsp.java:111)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:595)
    [Fatal Error] bin:1:1: Content is not allowed in prolog.
    NotifyUtil::java.net.SocketException: Software caused connection abort: recv failed
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    at java.io.BufferedInputStream.read1(BufferedInputStream.java:256)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:313)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:606)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:554)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:571)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:936)
    at org.netbeans.modules.web.monitor.server.NotifyUtil$RecordSender.run(NotifyUtil.java:248)
    So if I change my code to this (note that all I change is how the constant XML_FILE_NAME is set and I copy and paste the path that is derived from getFilePath after the String.replaceAll call.):
    public class DOMconference {
        /** Creates a new instance of DOMconference */
        public DOMconference() { }
        private final static String XML_FILE_NAME = "C:/Documents and Settings/gforte/agi/build/web/WEB-INF/conference.xml";//set the output file and location
        //public String XML_FILE_NAME = "";
        private final static String FIRST_CONF_ID = "8200";//set the initial conference number
        static Document document;
        public void getFilePath(String path)
            //XML_FILE_NAME = path;//.replaceAll("\\\\","/");
            System.out.println("XML==============="+XML_FILE_NAME);
        File file = new File(XML_FILE_NAME);
        *generic method that returns a Document object
       public Document getDocument() throws SAXException, ParserConfigurationException,
               IOException
           DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
           factory.setIgnoringComments(true);
           factory.setCoalescing(true);
           factory.setNamespaceAware(false);
           factory.setValidating(false);
           DocumentBuilder builder = factory.newDocumentBuilder();
           document = builder.parse(file);
           return document;
       }All is fine..
    Just in case, here is my xml file contents copy and paste from notepad.
    <?xml version="1.0"?><conf_rooms><conf_room><conf_id>8200</conf_id><conf_name>Conference room 1</conf_name></conf_room><conf_room><conf_id>8201</conf_id><conf_name>Conference Room 2</conf_name></conf_room><conf_room><conf_id>8202</conf_id><conf_name>dufus</conf_name></conf_room></conf_rooms>Thanks for hanging in there with me on this.
    Graham

  • How to convert a .jsp to a .java/.class file for use in peoplesoft

    Hi java/jsp experts,
    I want to convert a .jsp to a .java/.class file. is there a tool available, please let me know if you have any pointers....
    or can i do it manually:
    these are a few lines that the .jsp contains, and i would like to translate this to be in .java/.class format:
    <%@ page import="sun.misc.BASE64Encoder, javax.crypto., javax.crypto.spec."%>
    <%@ page import="java.util.StringTokenizer" %>
    <%@ page import="java.util.Map" %>
    <%!
    sb.append("<input type=\"hidden\" name=\"orderPage_serialNumber\" value=\"");
    sb.append(serialNumber);
    sb.append("\">\n");
    return sb.toString();
    %>
    how can i translate the above import statements and html elements from jsp to java, please let me know.
    Once i have the .java file created from the .jsp, I will compile .java to create the .class file and invoke the .class in peoplecode by using java apis available in peopletools.
    Thanks in advance.

    Is there a way convert a binary .exe file( compiled by
    another compiler) into Java .class/.jar file ? Anyone
    know of a free program that can do this?It's not possible. There are many decompilers and disassemblers for Java but nothing will take you from ANY binary to Java source. It would be the end of computing as we know it and the beginning of a new era -:)

  • Loading Java Class File in JSP page

    I'm trying to load a java class file from a jsp page.
    (e.g. MyFile.java <-- Source "MyFile.class<--Class file of MyFile.java")
    jsp page
    <%@ include file = "MyFile.class" %>
    <HTML> // HTML Tags are here
    MyFile.java
    A normal java source file that has "public static void main" in it.
    My jsp page can display it's contents, 'except' for showing e.g. "1235%%215648%%public%%$$@##" through out the page...
    My guess is that it can't display my java class file..
    Can anyone please help me solve this problem of mine ?
    Thanks in advance : )
    Yours Sincerely,
    RainbowEnergies

    This is my JSP file.
    <HTML>
    <HEAD>
    <TITLE>Activity Games</TITLE>
    </HEAD>
    <%
    String name = "";
    String id = "";
    name = session.getAttribute("name").toString();
    session.setAttribute("name",name);
    id = session.getAttribute("id").toString();
    session.setAttribute("id",id);
    %>
    <BODY bgcolor="#cc99ff" text="#000000" link="#E3E3E3" vlink="#CCCCCC" alink="#FF0000">
    <H3><%=name%>, you have enter Activity Games</H3>
    <%@ page import="Games.Lufia.*" %>
    <%Lufia lufia = new Lufia();%>
    </BODY>
    </HTML>
    After I execute...
    An error occurred at line: 18 in the jsp file: /jsp/ActivityGames.jsp
    error: File C:\Program Files\Apache Tomcat 4.0\webapps\website\WEB-INF\classes\Games\Lufia\Lufia.class does not contain type Games.Lufia.Lufia as expected, but type Lufia. Please remove the file, or make sure it appears in the correct subdirectory of the class path.
    Generated servlet error:
    C:\Program Files\Apache Tomcat 4.0\work\Standalone\localhost\website\jsp\ActivityGames$jsp.java:85: Class Games.Lufia.Lufia not found.
    Lufia lufia = new Lufia();
    But if I comment this out....
    This is my JSP file.
    <HTML>
    <HEAD>
    <TITLE>Activity Games</TITLE>
    </HEAD>
    <%
    String name = "";
    String id = "";
    name = session.getAttribute("name").toString();
    session.setAttribute("name",name);
    id = session.getAttribute("id").toString();
    session.setAttribute("id",id);
    %>
    <BODY bgcolor="#cc99ff" text="#000000" link="#E3E3E3" vlink="#CCCCCC" alink="#FF0000">
    <H3><%=name%>, you have enter Activity Games</H3>
    <%@ page import="Games.Lufia.*" %>
    <%//Lufia lufia = new Lufia();%> <--- comment this out.... (HERE)
    </BODY>
    </HTML>
    The page shows but did not run my java class file..
    Thanks again for trying to help me solve this problem of mine. : - )
    Regards,
    RainbowEnergies

  • How to decode  java class file to java file

    hi
    how to decode java class file into java file
    regards
    kedar

    Its really.......... really BAD.
    Write ur own code... or use open source code..
    Its a bad practice...
    however i am telling u ..there is DJ java decompiler.
    but mind it there are Obfuscator also....like codeshield and others
    take care...
    Alok

  • Reverse-Engineer Java Class Files ---- Launch Java Application From Icon

    hi,
    is there a way to prevent java class files from being interpreted back into java source files (jad.exe does exactly that) ?
    i have a batch file to compile my java application and another to run the application. the application is run by invoking the batch file from dos window.
    i'd like to be able to double-click on some icon to launch the application.
    how do i accomplish this?
    thank you.

    s there a way to prevent java class
    files from being interpreted back into
    java source files (jad.exe does exactly that) ?There are two ways to prevent that:
    1. Use an obfuscator. Look at this page for
    explanation of what is that, and then search google
    "java obfuscator" for products.
    http://www.devx.com/tips/Tip/13580
    2. Compile your application to native code (google
    for "excelsior jet" or "gcj"). Look at this page for
    more details:
    http://www.excelsior-usa.com/jetprotection.html
    i'd like to be able to double-click on some
    icon to launch the application.
    how do i accomplish this?Do you want to do that on your computer only, or you
    need a solution to make the clickable icon on
    computers of your end-users?
    Denis.thanks to all,
    i'll see suggest sites for more details on obfuscator.
    I'd like to have the application doulbe-clickable on end-users' computers.

  • Executing java.class files

    From julesh1
    To whom may help me:
    I'm new to java.
    I'm currently using jdk1.4.
    I can compile File.java just fine.
    But when i try to execute File.class i get an error message saying
    java.lang.noclassDefFoundError.
    This did not happen before.
    any help would greatly be appreciated.

    when you receive that error it usually indicates that the CLASSPATH does not include the directory where you are saving your .class files. If you are using Windows 2000, you need to:
    1. Right click on My Computer
    2. Go to properties
    3. Click on the Advance tab
    4. Click on Environment Variables
    5. Edit or create a new variable named ClassPath and type in something similar to this:
    .;C:\java;C:\jdk1.3.1;
    If you have Windows 95 or 98,
    Click on Start, then Run and type in sysedit, then click OK.
    Go to the AUTOEXEC.BAT file which usually is the first file to pop up. Type:
    SET CLASSPATH=.;C:\jdk1.3.1\classes;c:\java
    In the above . is the current directory; c:\jdk1.3.1\classes is a place where you can store your class files; c:\java is a directory I created on my hard drive where I store my class files..
    I hope this helps,
    Kent

  • Deploying the JSPs, Servlets and Java class files

    Hello All,
    I'm very new to the Oracle 9i AS. We are using Version 1.0.2.2.
    How do we deploy the JSPs, Servlets, and Java class files (simple class files, not EJBs)?
    plese give us the procedure and stpes how to deply or the links for the same.
    Thanks,
    Santhosh.

    Hi
    I guess u r running apache-jserv as servlet engine for your jsp and servlets. If its so, jsp files can be run without any additonal configuration by putting the jsp file under document root or any subdirectory and for running servlets u have to add classpath entries for your servlet in jserv.properties file.
    To make sure that your servlet engine is working, try
    http://servername:port/servlet/IsItWorking, if u get success msg that means servlet engine is working fine.
    Hope this will help
    Regards
    Kumaran

  • Importing a PAR file ---- not able to retrieve java class files(components)

    hi all....
    i've gota .par file....which i imported into NWDS.
    i can find all da files except the component classes i.e java class files...in the corresponding packages.
    can anyone help me.....
    thanx in advance....
    regards,
    Sudheer

    Hi Sudheer,
    you do not need the NWDS to find out what's in a PAR file. Basically, PAR files are ZIP archives. Rename the the PAR file (change the suffix to ".zip") and open it with your standard archive tool (WinZip, WinRar, etc.)
    Best regard,
    Martin

  • Java class files location of OSB resources

    What is the location of the java class files that get generated when OSB project/resources are deployed to the server ?

    Hi Lisan,
    Which version are you using? Folder strucure differs for 11i and R12 versions.
    All the class files will be placed under the JAVA_TOP folder. From there you have to follow your package structure. Here it is oracle/apps/xxogl/f04/cp/file
    HTH,
    Syed.

  • How to read the java class file to convert it in java.

    hello all,
    i m developing the java application which generated the java code from the java 'class file' .
    Can anybody please help me, Is any java support for reading the class file? or how to know the class file format?
    I know the application javad, jad, javap which is doing the same thing.
    thanks for reply,
    - Jayd

    do you mean decompiling? there are tons of java decompilers available out there, what exactly are you trying to do here?

Maybe you are looking for