Distributing _javac_ with my java application

Hello,
My application uses javac. How can I distribute my app along with javac? What files are needed for running javac in the PC where is no any sdk installed?

The current license for the JRE specifically allows the javac compiler (from the SDK to be distributed.) I believe Sun started allowing this, in a post addendum to the license, starting with 1.3.
The current version 1.4.2_03
The license...http://java.sun.com/j2se/1.4.2/j2re-1_4_2_03-license.html
Under the terms of the license in the section entitled "SUPPLEMENTAL LICENSE TERMS"...
B. License to Distribute Software.
(iii) you do not distribute additional software intended to replace any component(s) of the Software (unless otherwise specified in the applicable README file),
The readme which the license references....http://java.sun.com/j2se/1.4.2/jre/README
Under the Readme see..."Redistribution of Java 2 SDK Files"
Under that section see..."The javac bytecode compiler"

Similar Messages

  • Consuming web services with a java application

    Hello,
    I want to consume an ABAP generated web service with a stand-alone Java application. I am very new to this topic and need some hints how this functionality could be achieved.
    How is the web service accessed by the Java application? What about security issues?
    Thank you in advance for your replies! They will be appreciated.
    Kindest regards

    Hi
    See this Help and Examples
    http://help.sap.com/saphelp_nw2004s/helpdata/en/e2/36a53dc1204c64e10000000a114084/frameset.htm
    Kind Regards
    Mukesh

  • Use Sun Java Studio 2 with Existing Java Application

    I have started using Sun Java Studio 2 and having fun and little difficulty creating a new Java web application from scatch. My question is where do I find information on Java Studio configuration to allow Java Studio to load up and modify Java server pages/forms in an existing Java application that I did not write?
    The Java application has been created with Javabeans and using BEA Weblogic version 7, with a SQL-Server 2000 database backend.
    Below is a bit of code out of one of the main Java forms.
    <%@ page buffer="256kb" autoFlush="false" errorPage="../../common/system/error.jsp"
    import="psdi.jsp.beans.*, psdi.jsp.common.*, psdi.jsp.app.wotrack.*, psdi.jsp.util.* , psdi.mbo.* , psdi.util.* "%>
    I have looked around and have not found what I need to setup in Java Studio to allow me to load up a form and view it in the Visual designer, I keep getting errors on the psdi. references and cannot load up any pages.
    I see on the server install ia folder under the main root <DIR> called <apps>, and inside the <apps> folder is a folder called <jsp> and in the <jsp> folder are sub folders for each main module within the application with all the related .jsp files. I have been manually editing the .jsp files using Windows Notpad and saving the changes. Then I rebuild the .ear file and my changes work fine. Since I have a lot of changes to make there has to be a better way than using Notpad.
    My hope is somewhere is a point-by-point document on what to so I can use Sun Java Studio 2 to make my changes in a visual IDE.
    Any assistance would really be appreciated.

    Hi Giri,
    Yep, this I know,b ut when I do I get errors messages and am looking for some form of point-bypoint instuction that better explains how to setup up custom libraries in Sun Java Studio, custom tags, etc.

  • Integrating Sun Java Directory Server with Sun Java Application Server 7

    Hi,
    My basic goal is to implement Single Sign On within the network i,e if the user is inside the company's network and tries to access any application, then he should not be required for Username/password again becuase he is in the network.
    My question is Is this possible with Sun Java System DIrectory server. If yes how can we integrate Directory Server with Sun Java System Application Server 7 2004Q2.
    Please help.
    Thanks

    Directory Server in itself doesn't provide any kind of SSO functions. Basically it is a high performing data repository accessible via LDAP and DSML. It is, however, a key component used by SSO applications like Access Manager. If your applications are web applications then take a look at Access Manager for your SSO needs.
    Regards,
    Scott

  • How do I bundle fonts with my java application?

    I have a strange problem... I'm writing a java application with GUI (using swing btw, but that doesn't have anything to do with it :) ) and I'm using some fonts that obviously aren't standard on all operating systems. That's too sad, because now my program looks different in different environments.
    Now, the logical solution would be to load the fonts to be used from files included in the distribution package... but I can't find any way to do that! Just creating a Font object doesn't let you choose to take it from a file... but rather from the operating system itself. (Heck, I thought java was supposed to be independent from the OS.) So what do I do now? It would be really nice to be able to write programs that look the same in all environments, without being restricted to using the five (was it five?) standard java fonts...
    I'm desperate! This should be an easy problem to solve... with all the wonderful features of the java API there should be an easy way to do this.
    I just can't find it...
    Please... help! :) If you know a soultion, you could for example send me an email... at [email protected]
    /Erik (crazy Swede)

    you may load the System font list and then check if your GUI fonts are available, or use a predefined index a this list...
    example:
    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    // That�s the OS font list
    String[] fontNames = ge.getAvailableFontFamilyNames();
    JComboBox fontList = new JComboBox(fontNames);hint: the Serif and Roman fonts are JVM native ones... and you may use them at any OS...

  • How Can I Take Print Screen With in java Application

    Hello Every One,
    Hope U all r fine.
    How can i take print screen with in java code,
    Please Help me out

    http://search.java.sun.com/search/java/index.jsp?qp=&nh=10&qt=%2Btitle%3A%22print+screen%22&col=javaforums

  • Creating a database with Sun Java Application Server 9

    I am using a slightly outdated reference book on J2EE programming. It gives 2 methods of creating a database used in its casestudies. The first is an ANT script that gives the following output:
    D:\original\CaseStudy-2-5\CaseStudy\Day02\exercise>asant database
    Buildfile: build.xml
    env-user:
    prop-user:
    set-user:
    env-password:
    prop-password:
    read-password:
    set-password:
    set-j2ee:
    create-jdbc:
    set-j2ee:
    asadmin:
    [echo] asadmin.bat create-jdbc-resource user admin password password --
    connectionpoolid PointBasePool --enabled=true jdbc/Agency
    [exec] Usage: create-jdbc-resource [--terse=false] [--echo=false] [--intera
    ctive=true] [--host localhost] [--port 4848|4849] [--secure | -s] [--user admin_
    user] [--passwordfile file_name] --connectionpoolid id [--enabled=true] [--descr
    iption text] [--target target(Default server)] jndi_name
    [exec] CLI193 Password option "password" is not allowed on the command line
    . Please use --passwordfile option or asadmin login command.
    set-j2ee:
    asadmin:
    [echo] asadmin.bat list-jdbc-resources user admin password password
    [exec] Usage: list-jdbc-resources [--terse=false] [--echo=false] [--interac
    tive=true] [--host localhost] [--port 4848|4849] [--secure | -s] [--user admin_u
    ser] [--passwordfile file_name] [target (Default server)]
    [exec] CLI193 Password option "password" is not allowed on the command line
    . Please use --passwordfile option or asadmin login command.
    set-dbpath:
    BUILD FAILED
    D:\original\CaseStudy-2-5\CaseStudy\common\targets.xml:87: D:\Sun\SDK\pointbase\
    lib not found.
    Total time: 2 seconds
    D:\original\CaseStudy-2-5\CaseStudy\Day02\exercise>
    I've checked and there is no Sun\SDK\pointbase folder. The book was written for SDK 1.4 and I believe another application server. There is also a Java program that attempts to create it with jdbc. Its output looks like this :
    D:\original\CaseStudy-2-5\CaseStudy\Day02\exercise\classes>java CreateAgency
    java.lang.ClassNotFoundException: com.pointbase.jdbc.jdbcUniversalDriver
    java.lang.ClassNotFoundException: com.pointbase.jdbc.jdbcUniversalDriver
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at CreateAgency.main(Unknown Source)
    D:\original\CaseStudy-2-5\CaseStudy\Day02\exercise\classes>
    I am not conversant enough to discuss the corrections for the ANT script but I'm reasonably certain the Java program could work if I had the right strings in these lines.
    // PointBase
    private static final String driver = "com.pointbase.jdbc.jdbcUniversalDriver";
    private static final String protocol = "jdbc:pointbase:server://localhost/sun-appserv-samples,new";
    private static final String user = "pbPublic";
    private static final String password = "pbPublic";
    Can anyone help me with the correct driver and protocol?
    I am using the latest download version SDK JavaEE5
    the entire java program looks like this:
    import java.sql.*;
    public class CreateAgency {
    // Cloudscape
    //private static final String driver = "COM.cloudscape.core.RmiJdbcDriver";
    //private static final String protocol = "jdbc:cloudscape:rmi:Agency;create=true";
    //private static final String user = "";
    //private static final String password = "";
    // PointBase
    private static final String driver = "com.pointbase.jdbc.jdbcUniversalDriver";
    private static final String protocol = "jdbc:pointbase:server://localhost/sun-appserv-samples,new";
    private static final String user = "pbPublic";
    private static final String password = "pbPublic";
    public static void main(String[] args) {
    Connection conn=null;
    Statement s=null;
    try {
    Class.forName(driver);
    System.out.println("Loaded driver: "+driver);
    conn = DriverManager.getConnection(protocol,user,password);
    System.out.println("Connected to: "+protocol);
    conn.setAutoCommit(false);
    s = conn.createStatement();
    System.out.println("Dropping exisiting BMP tables...");
    try {s.execute("drop table ApplicantSkill");} catch (SQLException ex){}
    try {s.execute("drop table Applicant");} catch (SQLException ex){}
    try {s.execute("drop table JobSkill");} catch (SQLException ex){}
    try {s.execute("drop table Job");} catch (SQLException ex){}
    try {s.execute("drop table Matched");} catch (SQLException ex){}
    try {s.execute("drop table Customer");} catch (SQLException ex){}
    try {s.execute("drop table Location");} catch (SQLException ex){}
    try {s.execute("drop table Skill");} catch (SQLException ex){}
    System.out.println("Dropped tables");
    System.out.println("Creating new tables...");
    s.execute("create table Skill(name varchar(16) CONSTRAINT pk_skill PRIMARY KEY (name), description varchar(64))");
    s.execute("create table Location(name varchar(16)CONSTRAINT pk_location PRIMARY KEY (name), description varchar(64))");
    s.execute("create table Applicant(login varchar(16) CONSTRAINT pk_applicant PRIMARY KEY (login), name varchar(64), email varchar(64), summary varchar(512), location varchar(16), CONSTRAINT fk_location FOREIGN KEY (location) REFERENCES Location(name))");
    s.execute("create table ApplicantSkill(applicant varchar(16), skill varchar(16), CONSTRAINT fk_applicant FOREIGN KEY (applicant) REFERENCES Applicant(login), CONSTRAINT fk_skill FOREIGN KEY (skill) REFERENCES Skill(name))");
    s.execute("create table Customer(login varchar(16) CONSTRAINT pk_customer PRIMARY KEY (login), name varchar(64), email varchar(64), address1 varchar(64), address2 varchar(64))");
    s.execute("create table Job(ref varchar(16), customer varchar(16), description varchar(512), location varchar(16), CONSTRAINT pk_job PRIMARY KEY (ref,customer), CONSTRAINT fk_customer FOREIGN KEY (customer) REFERENCES Customer(login), CONSTRAINT fk_location FOREIGN KEY (location) REFERENCES Location(name))");
    s.execute("create table JobSkill(job varchar(16), customer varchar(16), skill varchar(16), CONSTRAINT fk_job FOREIGN KEY (job,customer) REFERENCES Job(ref,customer), CONSTRAINT fk_skill FOREIGN KEY (skill) REFERENCES Skill(name))");
    s.execute("create table Matched(applicant varchar(16), job varchar(16), customer varchar(16), exact boolean, CONSTRAINT fk_job FOREIGN KEY (job,customer) REFERENCES Job(ref,customer), CONSTRAINT fk_applicant FOREIGN KEY (applicant) REFERENCES Applicant(login))");
    System.out.println("Created tables");
    System.out.println("Inserting table records...");
    s.execute("insert into Location values ('London','London UK')");
    s.execute("insert into Location values ('Washington','Washington DC, USA')");
    s.execute("insert into Location values ('Verona','Verona, Renaissance Italy')");
    s.execute("insert into Location values ('Wessex','Wessex, Kingdom of England')");
    s.execute("insert into Skill values ('Tree Surgeon','Tree Surgeon')");
    s.execute("insert into Skill values ('Cigar Maker','Cigar Maker')");
    s.execute("insert into Skill values ('Bodyguard','Bodyguard')");
    s.execute("insert into Skill values ('Cook','Cook')");
    s.execute("insert into Skill values ('Lawyer','Lawyer')");
    s.execute("insert into Skill values ('Critic','Critic')");
    s.execute("insert into Applicant values ('juliet','Juliet Capulet', 'juliet@localhost' , 'Dutiful daughter', 'London' )");
    s.execute("insert into Applicant values ('romeo','Romeo Montague', 'romeo@localhost' , 'Dutiful son', 'Wessex' )");
    s.execute("insert into Applicant values ('julius','Julius Caesar', 'julias@localhost' , 'Roman Emperor', 'Washington' )");
    s.execute("insert into Applicant values ('brutus','Marcus Brutus', 'marcus@localhost' , 'Roman Senator', 'Washington' )");
    s.execute("insert into Applicant values ('proteus','Proteus', 'proteus@localhost' , 'Gentleman', 'Verona' )");
    s.execute("insert into Applicant values ('valentine','Valentine', 'valentine@localhost' , 'Gentleman', 'Verona' )");
    s.execute("insert into ApplicantSkill values ('juliet', 'Cook')");
    s.execute("insert into ApplicantSkill values ('romeo', 'Cook')");
    s.execute("insert into ApplicantSkill values ('romeo', 'Bodyguard')");
    s.execute("insert into ApplicantSkill values ('julius', 'Tree Surgeon' )");
    s.execute("insert into ApplicantSkill values ('julius', 'Tree Surgeon' )");
    s.execute("insert into ApplicantSkill values ('brutus', 'Critic' )");
    s.execute("insert into ApplicantSkill values ('brutus', 'Lawyer' )");
    s.execute("insert into ApplicantSkill values ('proteus', 'Lawyer' )");
    s.execute("insert into ApplicantSkill values ('proteus', 'Critic' )");
    s.execute("insert into ApplicantSkill values ('valentine', 'Critic' )");
    s.execute("insert into ApplicantSkill values ('valentine', 'Cigar Maker' )");
    s.execute("insert into Customer values ('george','George Washington', 'george@localhost', 'White House', 'Washington')");
    s.execute("insert into Customer values ('winston','Winston S Churchill', 'winston@localhost', '10 Downing Street', 'London')");
    s.execute("insert into Customer values ('abraham','Abraham Lincoln', 'abe@localhost', 'Springfield', 'Illinois')");
    s.execute("insert into Customer values ('alfred','Alfred the Great', 'alf@localhost', 'Wessex', 'England')");
    s.execute("insert into Job values ('Tree pruner', 'george', 'Must be honest', 'Washington')");
    s.execute("insert into Job values ('Cigar trimmer', 'winston', 'Must like to talk and smoke', 'London')");
    s.execute("insert into Job values ('Theatre goer', 'abraham', 'Should be intelligent and articulate', 'Washington')");
    s.execute("insert into Job values ('Cake maker', 'alfred', 'Should have a good sense of smell', 'Wessex')");
    s.execute("insert into JobSkill values ('Tree pruner','george','Tree Surgeon')");
    s.execute("insert into JobSkill values ('Cigar trimmer', 'winston', 'Cigar Maker')");
    s.execute("insert into JobSkill values ('Cigar trimmer', 'winston', 'Critic')");
    s.execute("insert into JobSkill values ('Theatre goer', 'abraham', 'Bodyguard')");
    s.execute("insert into JobSkill values ('Theatre goer', 'abraham', 'Lawyer')");
    s.execute("insert into JobSkill values ('Theatre goer', 'abraham', 'Critic')");
    s.execute("insert into JobSkill values ('Cake maker', 'alfred', 'Cook')");
    System.out.println("Inserted records");
    conn.commit();
    System.out.println("Committed transactions");
    catch (SQLException ex) {
    System.out.println("SQL Exception thrown: "+ex);
    ex.printStackTrace();
    try { conn.rollback(); } catch (Exception e) {}
    catch (ClassNotFoundException ex) {
    System.out.println(ex);
    ex.printStackTrace();
    finally {
    try { s.close(); } catch (Exception ex) {}
    try { conn.close(); } catch (Exception ex) {}
    }

    JavaEE Tutorial has a chapter on security:
    http://java.sun.com/javaee/5/docs/tutorial/doc/
    Usually a no-arg InitialContext() is used, rather than InitialContext(props). For more info, see
    Glassfish EJB FAQ:
    https://glassfish.dev.java.net/javaee5/ejb/EJB_FAQ.html
    -cheng

  • Control firefox with a java application?

    Hy!
    As the subject says, I'm trying to make a Java app that would control firefox through a simple GUI interface. For example, lets say there are two buttons on my GUI ("back" and "forward") then when i click on them the resolt should be the same as clicking on the arrows in Firefox.
    So far, I'm fighting to understand how XULRunner works, but any extra advice would be appreciated.
    Thanx

    pinsky wrote:
    I overdid it a little with that "platform independent" thing. I meant that it could be usable on both Windows and desktop versions of Linux.
    I'll take a look at JDIC, thanks.
    I also found a great tutorial, I'm currently reading it. It seams it might be just what I was looking for.
    Here is the link:
    http://ladyr.es/wiki/wiki/XPCOMGuide
    Huh? It uses native code and it embeds a browser in the application. Is that what you wanted to do?

  • Using a Variable with BEX Java Applications

    If I put a variable into a query and try to run the query using anything Java based (e.g. Web analyzer) when I do a drop down on the variable in the query to make a selection I dont get a proper selection choice. For example if I have a variable on Cost Centre I do the drop down on cost centre and I dont get a list of cost centres to chose from I just get ?? where the cost centres should be. If I select a ?? it does select a cost centre. It's just pot luck which you selec as they are all ??!  This happens on any variable I use SAP Standard or any I have created. Any ideas - sounds like a Java patch should fix it but I cant see anything in SAP notes etc.

    I put a query in a WAD or when I Execute a Query from the Query designer.  When I run the query the variable on the filter kicks in and it requests I select something e.g. cost centre. When I do the drop down in the variable to select a cost centre I dont get a list of cost centres. Only ?? where a cost centre should be. However when I select a ?? it does know what the cost cejtre is as it populates the variable with a cost centre. All the cost centre data is loaded etc.

  • Possible to Invoke MS Word with Java Application?

    Is it possible to invoke Microsoft Word to open a word doc with a Java application?
    If yes, what API or knowledge should I know to do this?
    Please give some advice.

    Using the various forms of the exec() method in the Runtime class, you can execute arbitrary programs, such as MS Word. exec() returns a Process instance, which you can do various things with such as get input/output streams, kill, etc. Note the parameters to the exec() method are platform specific, because of differing command shell names, path separators, etc. So you will definitely have to experiment and see what works on your platform:
    Process msWord = Runtime.getRuntime().exec( "cmd.exe /C winword.exe" );That is one of the general idioms for using exec(), like I say you will have to experiment to see what variant of exec() works for you. Try searching these forums, this question has been answered numerous times before.

  • Integrating Webhelp in a Java Application

    In order to use Robohelp-generated help with my java application I need to compile, incorporate and distribute the file RoboHelp_CSH.java with my application. In addition I would like to make some modifications to the file. However the source includes the statement "Copyright© 2008 Adobe Systems Incorporated. All rights reserved." at the top of the file. This statement appears to prevent re-distribution which would seem to negate the purpose of providing this file in the first place. How are other users dealing with this?
    Thanks,
    David

    Hi David. You'll have seen that various people have responded to the same query on the HATT forum. If I were you I'd stick to asking RoboHelp related queries here in future.
    For anyone else who may have a similar issue in the future, the consensus seems to be that your RH licence gives you the right to redistribute whatever file is required to access the help. However changing a file would be a copyright contravention. If in doubt, contact Adobe Support.

  • To Implement TREX functionality in web dynpro java application in portal

    Hello Experts,
    We have a requirement in which the client want to search with the help of TREX in webdynpro for java application. Can you please help how we can connect webdynpro for java with TREX.
    Thanks and Regards,
    Vivek

    Hi Robin,
    I have connected the KM with webdynpro java application with the help of following url.
    Knowledge Management and TREX Functionalities through WebDynpro using KM index management APIs
    Still not getting any data returned from the KM. What should i do next.
    Thanks and Regards,
    Vivek

  • Trying to do the simple HelloWorld java application for portal

    Hi:
    i've been trying to do the simple java application HelloWorld so that i can get a view of how will it be to integrate a pure java application that we have in a later step. The fact is that i've been following "how to build a java portlet" and "packaging and deploying your provider" documents.
    i've taken the code from that document:
    public class HelloWorldApp {
    public static void main (string[] args){
    //Display "Hello World!"
    System.out.println("Hello World!");
    That's my java code. (in fact i want to do this as a trial, 'cause later i will
    do the same with a java application of our own).
    So i compiled it, taken the .class, jar it and packaged it as told in the
    second document.
    I've deployed it in OC4J_portal and when i try to access the URL i get an
    error:
    500 Internal Server Error
    java.lang.NoSuchMethodException
         at java.lang.Class.getMethod0(Native Method)
         at java.lang.Class.getMethod(Class.java:888)
         at oracle.portal.provider.v2.render.http.JavaRenderer.postInitialize(Unknown Source)
         at oracle.portal.utils.xml.v2.DefaultNodeHandler.invokePostInitialize(Unknown Source)
         at oracle.portal.utils.xml.v2.DefaultNodeHandler.processNode(Unknown Source)
         at oracle.portal.utils.xml.v2.DefaultNodeHandler.processNode(Unknown Source)
         at oracle.portal.utils.xml.v2.DefaultNodeHandler.processNode(Unknown Source)
         at oracle.portal.provider.v2.http.DefaultProviderLoader.getProviderDefinition(Unknown Source)
         at oracle.portal.provider.v2.http.DefaultProviderLoader.init(Unknown Source)
         at oracle.webdb.provider.v2.adapter.soapV1.ProviderAdapter.init(Unknown Source)
         at oracle.webdb.provider.v2.utils.soap.SOAPProcessor.locateService(Unknown Source)
         at oracle.webdb.provider.v2.adapter.SOAPServlet.doHTTPCall(Unknown Source)
         at oracle.webdb.provider.v2.adapter.SOAPServlet.service(Unknown Source)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:336)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:59)
         at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:283)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:523)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:269)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:735)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.AJPRequestHandler.run(AJPRequestHandler.java:151)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].util.ThreadPoolThread.run(ThreadPoolThread.java:64)
    does anybody know how to solve this problem?
    Thx.
    Regards. Urko.

    Hi Urko,
    Such an application as you have quoted will not have much luck as a Portlet - the code you supplied simply writes "Hello World" to standard out!
    Think of a portlet more like a servlet - you have an output stream to write to which, under the covers, is wired back up to the Portal Server which assembles the content into the page seen in the browser.
    Take a look at the extensive range of sample Java Portlets available with the PDK download.
    Anyway, from the stack trace it looks like you're using JavaRenderer. JavaRenderer invokes an arbitrarily named method on an arbitrary class **provided** that method takes a single argument of type PortletRenderRequest. So you would need something like:-
    public class MyApp
    // A bunch of app-specific code.
    public void renderPortlet(PortletRenderRequest pr)
    PrintWriter out = pr.getWriter();
    out.println("<b>Hello World</b>");
    Then, the relevant provider.xml section would look something like this....
    <showPage class="oracle.portal.provider.v2.render.http.JavaRenderer>
    <className>MyApp</className>
    <renderMethod>renderPortlet</renderMethod>
    </showPage>
    Hope this helps.....
    Regards,
    Gareth
    PDK-Java Development Team

  • Slow starup of Java application - best practices for fine tuning JVM?

    We are having problems with a java application, which takes a long time to startup.
    In order to understand our question we better start with some background info. You will find the question(s) after that.
    Background:
    The setup is as follows:
    In a client-server solution we have a win xp, fat client running java 1.6.0.18.
    (Sun JRE). The fat client containt a lot of GUI, and connects to a server for DB access. Client machines are typical 1 to 3 years old (there are problems even on brand new machines). They have the client version of JRE - standard edition installed (Java SE 6 update 10 or better) Pretty much usual stuff so far.
    We have done a lot of profiling on the client code, and yes we have found parts of our own Java code that needs improving. we are all over this. Server side seems ok with good response times. So far, we havent found anything about shaky net connections or endless loops in the java client code or similiar.
    Still, things are not good. Starting the application takes a long time. too long.
    There are many complicating factors, but here is what we think we have observed:
    There is a problem with cold vs. varm starts of the application. Apparently, after a reboot of the client PC - things are really, really bad - and it takes (sometimes) up to 30-40 secs to start the application (until we arrive at the start GUI in our app).
    If we run our application, close it down, and then restart
    without rebooting, things are a lot better. It then usually takes
    something like 15 - 20 sec. which is "acceptable". Not good, but acceptable,
    Any ideas why?
    I have googled it, and some links seems to suggest that the reason could be disk cache. Where vital jar are already in disk cache on th warm start? Does that make any sense? Virus scanners presumable runs in both cases.
    People still think that 15 - 20 sec in start up on the warm start is an awful long time, even though there is a lot, a lot, of functionality in the application.
    We got a suggestion to use IBMs JRE - as it can do some tricks (not sure what) our SUN JRE cant do concerning the warm and cold start problem. But thats is not an option for us. And noone has come up with any really good suggestions with the SUN JRE so far?
    On the Java Quick Starter (JQS) -
    improves initial startup time for most java applets and applications.
    Which might be helpful? People on the internet seem more interested
    in uninstalling the thing than actually installing it though?
    And it seems very proprietary, where we cant give our Jar files to it?
    We could obviously try to "hide" the problem in some way and make it "seem" quicker. Where perceived performance can be just as good as actual performance. But it does seem a bad solution. So for the cold start we will probably try reading the jar files and thereby have them in disk cache before startup of our application. And see if that helps us.
    Still, ok the cold start is the real killer, but warm start isn't exactly wonderfull either.
    People have suggested that we read more on the JVM and performance.
    java.sun.com.javase/technologies/performance.jsp
    java.sun.com.docs/hotspot/gc5.0/gc_tuning_5.html
    the use of JVM flags "-Xms" "-Xmx" etc etc.
    And here comes the question .. da da ...
    Concerning various suggested reading material.
    it is very much appreciated - but we will like to ask people here - if it is possibe to get more specific pointers. to where the gold might be buried.
    I.e. in a an ideal world we would have time to read and understand all of these documents in depth. However, in this less than ideal world we are also doing a lot of very timeconsuming profiling in our own java code.
    E.g. java garbage collection is is a huge subject - and JVm settings also. Sure, in the end we will probably have to do this all very thoroughly. But for now we are hoping for some heuristics on what other people are doing when facing a problem like ours..?
    Young generation, large memory pages, garbage collection threads ect. all sounds interesting - but what would you start with?
    If you don't have info to decide - what kind of profiling would you be running and then adjust what JVM setting in your trials?
    In this pressed for time scenario. Ignorance is not bliss. But makes it hard to pinpoint the or those JVM parameters to adjust. So some good pointers from experienced JVM "configurators" will be much appreciated!
    Actually, If we can establish that finetuning of these parameters is a good idea, it will certainly also be much easier to allocate the time for doing so. - reading, experimenting etc. in our project.
    So, All in all , what kinds of performance improvements can we hope for? 5 out of 20 secs on the warm start? Or is it 10 % nitpicking? Whats the ball park figure for what we can hope to achieve here given our setup? What do you think based on above?
    Maybe someone out there have done some finetuning of JVM parameters in a similiar PC environments like, with similiar fat clients...? Finetuning so and so - gave 5 secs. So start your work with these one-two parameters?
    Something like that - some best practices? Thats what we are hoping for.
    best wishes
    -Simon

    Thanks for helpful answer from both you and kajbj.
    The app doesn't use shared network drives.
    What are you doing between main starts to get executed and the UI is
    displayed?
    Basicly, Calculating what to show in the UI. Accessing server - not so much, there are some reads from a cache, but the profiling doesnt indicate that it should be a problem. Sure, I could shift the startup time to some other slot, but sofar I havent found a place where the end-user wouldnt be annoyed.> Caching of something would seem most obvious. Normal VM stuff >seems unlikely. With profiling i basicly find that ''everything'' takes a lot longer in the cold start scenario. Some of our local java methods are going to be rewritten following our review. But what else can be tuned?You guys dont think the Java Quick Start approach, with more jars in disk cache will give something? And how should that be done/ what does people do?I.e. For the class loader I read something about
    1.Bootstrap class loader
    2.Extensions class loader
    3.System class loader
    and is wondering if this has something to do with the cold start problem?
    The extensions class loader loads the code in the extensions directories (<JAVA_HOME>/lib/ext
    So, we should move app classes to ext? Put them in one jar file? (We have many). Best practice about that?
    Otherwise it seems to me that it must be about finetuning the JVM?
    I imagine that it is a question about:
    1. the right heap size
    2. the right garbage collection scheme
    Googling heap size for XP
    CHE22 writes:
    You are right; -Xms1600M works well, but -Xms1700M bombs
    Thats one best practice or what?
    On garbage collection, there are numerous posts, and much "masters of Java black art" IMHO, And according to profiling GC is not really that much of a problem anyway? Still,
    Based on my description I was hoping for a short reply like "try setting these two parameters on your xp box, it worked for me" ...or something like that. With no takers on that one, I fear people are saying that there is nothing to be gained there?
    we read:
    [ -Xmx3800m -Xms3800m
    Configures a large Java heap to take advantage of the large memory system.
    -Xmn2g
    Configures a large heap for the young generation (which can be collected in parallel), again taking advantage of the large memory system. It helps prevent short lived objects from being prematurely promoted to the old generation, where garbage collection is more expensive.
    Unless you have problems with pauses, try granting as much memory as possible to the virtual machine. The default size (64MB) is often too small.
    Setting -Xms and -Xmx to the same value increases predictability by removing the most important sizing decision from the virtual machine. On the other hand, the virtual machine can't compensate if you make a poor choice.
    The -XX:+AggressiveHeap+ option inspects the machine resources (size of memory and number of processors) and attempts to set various parameters to be optimal for long-running, memory allocation-intensive jobs]
    So is Setting -Xms and -Xmx and -XX:AggressiveHeap
    best practice? What kind of performance improvement should we expect?
    Concerning JIT:
    I read this one
    [the impact of the JIT compiler is obvious on the graph: at startup the time taken is around 500us for the first few values, then quickly drops to 130us, before falling again to 70us, where it stays for 30 minutes,
    for this specific issue, I greatly improved my performances by configuring another VM argument: I set -XX:CompileThreshold=50]
    The size of the cache can be changed with
    -Xmaxjitcodesize
    This sounds like you should do something with JIT args, but reading
    // We disable the JIT during toolkit initialization. This
    // tends to touch lots of classes that aren't needed again
    // later and therefore JITing is counter-productiive.
    java.lang.Compiler.disable();
    However, finding
    the sweet spots for compilation thresholds has been tricky, so we're
    still experimenting with the recompilation policy. Work on it
    continues.
    sounds like there is no such straigth forward path, it all depends...
    Ok, its good, when
    [Small methods that can be more easily analyzed, optimized, and inlined where necessary (and not inlined where not necessary). Clearly delineated uses of data so that usage patterns and lifetimes are apparent. ]
    but when I read this:
    [The virtual machine is responsible for byte code execution, storage allocation, thread synchronization, etc. Running with the virtual machine are native code libraries that handle input and output through the operating system, especially graphics operations through the window system. Programs that spend significant portions of their time in those native code libraries will not see their performance on HotSpot improved as much as programs that spend most of their time executing byte codes.]
    I have the feeling that we might not able to improve performance that way?
    Any comments?
    otherwise i was wondering about
    -XX:CompileThreshold=50 -Xmaxjitcodesize (large, how large?)
    Somehow, we still feel that someone out there should have experienced similiar problems? But obviously there is no guarantee that the someone should surf by here!
    In c++ we used to just write everything ourselves. Here it does seem to be a question about the right use of other peoples stuff?
    Where you are kind of hoping for a shortcut, so you dont have to read endless number of documents, but can find a short document that actually addresses your problem ... well.
    -Simon
    Edited by: simoncpm on Mar 15, 2010 3:43 PM
    Edited by: simoncpm on Mar 15, 2010 3:53 PM

  • Java application - build JAR file & include JCO library

    Hello everyone,
    I have a problem with my Java application that <i>connects to SAP system using JCO </i>library <b>(sapjco.jar)</b>.
    I would like to create a JAR file from my Java application but when I run the JAR file that I created I get an error that <b>NoClassDefinitionFoundError com/sap/mw/jco/JCO at [...]</b>
    That means that the JCO and associated DLL files <b>(sapjco.jar, librfc32.dll and sapjcorfc.dll)</b> were <u>not</u> included/packed in my JAR file.
    <b>-- How can I include the JCO lib in JAR file?
    -- If there is a problem with the DLL files, how can I include the JCO lib externally (dynamicly read the JCO whenever my JAR in run)?</b>
    I am using Eclipse 3.2 and Export to JAR option when I click right button on Project.
    THANKS IN ADVANCE FOR HELP!!!

    Hi,
    The problem is that you don't have defined the libraries in the Manifest file of your jar-file. So the jar doesn't know what to use at runtime.
    Add following entry to the MANIFEST.MF file:
    Class-Path:/<lib_folder>/<lib1_name>.jar; /<lib_folder>/<lib2_name>.jar and so on.
    Regards,
    Daniel

Maybe you are looking for

  • Formatting New External Hard Drive from NTFS to MS-DOS Problem

    Hi I'm new to the mac family and I just got a Seagate FreeAgent external hard drive and hooked it up - it mounted fine but it comes formatted NTFS so its in a read only state at the moment. I want to reformat it to MS-DOS so I can use it for both my

  • HT1459 why is my apple ID not been used at iTunes Store?

    hi everyone i need your kind assistance regarding my concern when i sign in on my iTunes it say you apple ID is not been used at iTunes Store?

  • Admin Server getting down

    I m new in weblogic, please help me, I have two managed server both are clustered with running ssl port. when i m trying to stop any managed server, the admin server also getting down automatically, and I could't able to stop / start my managed serve

  • Color Manage - Yes or No?

    First, I'm a color management geek and fan. Almost all of my work in the past was under my total control, so I was able to select my own commercial printer. I only worked with commercial printers who had a firm grasp on color management, had current

  • Can anyone answer following queries!!!

    Hi CRM Experts, I need help on following queries. 1) Does an archived or blocked BP continue to receive mailings? 2) What happens if the archived or blocked BP record has financing associated with it and how can we pull the account information into t