Speed of Java Applications

I am in a postion at work to design a new product and make decisions concerning the technologies used to develop it. I soooooo want to go away from the temptation to use .NET's c# for the product because of my dislike (to say the least) towards MS. I have two concerns about Java though. Maybe someone can shed some light on them for me :
1.) This is a large desktop application. Almost all large Java desktop Apps I have seen have been dogs (very slow). This would be a show-stopper!
2.) Developing in .NET is quick for developers because of the nice GUI IDE for designing application forms. I haven't seen a compariable Java IDE out there. Is there one?
Thanks.

I have researched NetBeans and JBuilder. NetBeans seems a little bloated and slow. However, JBuilder is very nice, but very costly. $3,500.00 per seat I believe.
Now in response to this :
That is a very bad mentality to have when you are in decision making
position. You don't want to use a technology because you like it or
not; your decision should be based primarily on what technology is
most suited to the requirements & the contraints of the
application/project.There are quite a few other factors that go into the decision making process also. I didn't list them all for the sake of simplicity. A couple are :
1.) Microsoft has become some what of a competitor here of late.
2.) Platform independence, although not necessary, is would be a very nice thing to have in our field. But not at the risk of having a doggish product.
Thanks,
jelly_boy

Similar Messages

  • How to speed up a Java application?

    As I learn more about Java, I realize that one of the main drawbacks compared to other languages is its speed. I have however heard that once the program is compiled once, it is "nearly as fast as C++" as long as it remains in memory.
    So the question to you all is, are there ways get an Java application compiled in memory and ensure that it remains in memory, and therefore get it as fast or faster than C++ or other lower level languages?
    Thanks,
    Nick

    Three items:
    This online book on performance: http://java.sun.com/docs/books/performance/
    Look into the -server option of the jvm "java -server"
    Check out the extensive performance documentation here at the Sun site - click on "Documetation" at the left
    This is only a small start into what's available on the subject, some searching using the site's seach engine (at the upper right corner) and Google will produce many more items of value.

  • JAVA Application speed using JARs

    Good day guys,
    I have a quick question about the perfomance.
    When I write Java application that uses other third party JARs, do I have to remove all the
    classes from those jars that I dont use to make application run faster or it does not metter?
    Thank you very much

    Ajaxian wrote:
    Good day guys,
    I have a quick question about the perfomance.
    When I write Java application that uses other third party JARs, do I have to remove all the
    classes from those jars that I dont use to make application run faster or it does not metter?
    Thank you very muchLet's take that to another level. Suppose this is on Windows, and that none of the apps running on it will ever use some DLL(s) or some APIs in those DLLs, which are already installed on the box. Do you really think you should worry about trimming them down?
    And surely none of the java specific apps you will write will use ALL of the classes and methods in the whole java library, so should you whack those too?

  • How to reduce CPU utilization time in Java Application

    Hi,
    I have created a Java Application. It is a 3-tier architecture. While running my Java application, the CPU utilization percentage shots up to 100 %. I feel that it will affect the system performance and it will hang up the system also.
    If any body know the solution to reduce the CPU utilization or links, please post it.
    Thanks in advance.
    Kennedy

    I know Java class file must be interpreted by VM. but
    Visual Basic is also a language to be interpreted. Why
    it run faster than Java? As Java running speed is
    concerned, it's unwise to apply to the
    enterprise-level application. Now I can't endure Java
    running speed. I wander to know whether it is
    associated with operating system or not.1. Java is nto interpreted in modern (since 1997 or earlier) JVM's - it is compiled into machine code as it is executed via a JIT or a Dynamic compiler (like HotSpot).
    2. VB (5 and later) is also not truely interpreted - in fact it uses the same excellent native code generator used by Visual C++.
    3. Java is principally used these days for enterprise server-based systems where it performs extremely well - or extremely poorly as does C++ in the hands of people who don't know how to use it.
    4. Different JVM's (and in some cases the same JVM hosted on different OS's) perform at different speeds - your mileage will vary. The OS has little influence on the computational speed of java but can highly influence its network, disk and graphics performance, as does hardware configuration (local console versus X terminal - Swing sucks on X Term).
    Chuck

  • Change java application to exe file

    I want to change the java application(*.class)to the exe file in WIN OS in order to update its speed, can anyone tell me some useful infomation? thanx in advance.
    Holly

    I have been using VAJ for several months now and I have not found the option to compile a native executable. Its help system is the worst I can recall ever seeing. So can you tell me exactly how to do that with VAJ?

  • Startup java application

    Hi.
    I am a new Open Office user and I notice that at first time I startup an Application ( Writer ) it takes some seconds to display. But when I startup the same application again, it is displayed quickly. Why does it happen? Are Open Office Applications written in Java? I am developing a Java application using Swing and I would like to include this feature in my application but I don't know how to do that. Could you help me?
    Thanks.

    OpenOffice is not written in java
    All applications should take longer to start the first time compared to subsequent times under normal operating conditions. This is because of your operating systems memory management.
    Java should actually even perform the same way up to the point where it begins loading your byte code, which, is pretty soon after execution, so no, there are no special techniques you can borrow.
    The best way to speed your application loading is to delay resource aquisition as long as possible.

  • JIT and rerunning java applications

    When running a Java application in windows, if you re-run the application multiple times does the JIT compiler ever store data between executions to speed up further executions? Or is the JIT only doing its work during a single process run?
    Thanks

    The current Windows VM JIT does not store any info between runs of the VM.

  • Error while running Java application using Crystal Reports 2011

    Hello,
    I would like to ask for your help.
    Environment details:
    Java based standalone application in Development environment.
    Crystal Reports 2011 (no SP applied)
    Oracle 11g ( 32 bit client installed)
    Win7 64 bit OS.
    Workflow:
    While running the java application, which will display the reports I am getting the below mentioned error. I guess that is because I am missing the Crystal runtimes (Correct me if I am wrong).
    I know that CR2011 do not have any sdks/ jar available for deployment. In this case, which runtimes should I be using? Does installing CR2011 be enough in the development box?
    Please provide me the link from which I can download the same.
    Let me know if I need to provide more details on this. Any suggestions are most welcome.
    Thank You.
    Code used:
    reportClientDoc = new ReportClientDocument();
    System.err.println("Opening the Report ");
    reportClientDoc.open(REPORT_PATH, 0);
    // this is where the error or exception is thrown
    _Error: _
    log4j:WARN No appenders could be found for logger (com.crystaldecisions.reports.reportdefinition.ReportDocument).
    log4j:WARN Please initialize the log4j system properly.
    com.crystaldecisions.sdkreport.lib.ReportSDKException: com/businessobjects/reports/jdbinterface/common/DBException---- Error code:-2147467259 Error code name:failed
                    at com.businessobjects.reports.sdk.JRCCommunicationAdapter.<init>(SourceFile:286)
                    at com.businessobjects.sdk.erom.jrc.a.<init>(SourceFile:43)
                    at com.businessobjects.sdk.erom.jrc.ReportAgentFactory.createAgent(SourceFile:46)
                    at com.crystaldecisions.proxy.remoteagent.RemoteAgent.<init>(SourceFile:703)
                    at com.crystaldecisions.proxy.remoteagent.RemoteAgent.a(SourceFile:662)
                    at com.crystaldecisions.proxy.remoteagent.RemoteAgent.a(SourceFile:632)
                    at com.crystaldecisions.sdk.report.application.ClientDocument.if(SourceFile:504)
                    at com.crystaldecisions.sdk.report.application.ClientDocument.open(SourceFile:669)
                    at com.crystaldecisions.reports.sdk.ReportClientDocument.open(Unknown Source)
                    at rp.batch.bo.RpJRCExportReport.runReportExport(RpJRCExportReport.java:517)
                    at rp.batch.bo.RpSchedReportRun.process(RpSchedReportRun.java:163)
                    at rp.batch.bo.RpSchedReportRun.drive(RpSchedReportRun.java:240)
                    at rp.batch.bo.RpSchedReportRun.main(RpSchedReportRun.java:265)
    Caused by: java.lang.NoClassDefFoundError: com/businessobjects/reports/jdbinterface/common/DBException
                    at com.crystaldecisions.reports.queryengine.Session.a2(SourceFile:244)
                    at com.crystaldecisions.reports.datafoundation.DataFoundation.do(SourceFile:376)
                    at com.crystaldecisions.reports.dataengine.dfadapter.DFAdapter.do(SourceFile:111)
                    at com.crystaldecisions.reports.dataengine.datafoundation.CreateDataConnectionCommand.new(SourceFile:81)
                    at com.crystaldecisions.reports.common.CommandManager.a(SourceFile:71)
                    at com.crystaldecisions.reports.common.Document.a(SourceFile:203)
                    at com.businessobjects.reports.reportconverter.v12.e.a(SourceFile:442)
                    at com.businessobjects.reports.reportconverter.v12.e.a(SourceFile:231)
                    at com.businessobjects.reports.reportconverter.v12.d.m(SourceFile:192)
                    at com.businessobjects.reports.reportconverter.v12.f.if(SourceFile:210)
                    at com.businessobjects.reports.reportconverter.v12.V12SaveLoader.a(SourceFile:242)
                    at com.businessobjects.reports.loader.ReportLoader.a(SourceFile:205)
                    at com.businessobjects.reports.sdk.JRCReportLoader.a(SourceFile:137)
                    at com.businessobjects.reports.sdk.JRCReportLoader.a(SourceFile:76)
                    at com.businessobjects.reports.sdk.requesthandler.ReportDocumentRequestHandler.a(SourceFile:136)
                    at com.businessobjects.reports.sdk.JRCCommunicationAdapter.<init>(SourceFile:229)
                    ... 12 more
    Caused by: java.lang.ClassNotFoundException: com.businessobjects.reports.jdbinterface.common.DBException
                    at java.net.URLClassLoader1.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:307)
                    at sun.misc.LauncherAppClassLoader.loadClass(Launcher.java:301)
                    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
                    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
                    ... 28 more

    Help me ...
    Ambient:
    Crystal Reports Viewer 14.0.0.0
    java.vendor = Sun Microsystems Inc.
    java.version = 1.6.0_37
    os.name = Windows NT (unknown)
    os.version = 6.2
    os.arch = amd64
    Exception:
    com.crystaldecisions.sdk.occa.report.lib.ReportSDKException: com.businessobjects.sdk.erom.jrc.ReportAgentFactory---- Error code:-2147215357 [CRSDK00000026] Error code name:internal
              at com.crystaldecisions.sdk.occa.report.lib.ReportSDKException.throwReportSDKException(ReportSDKException.java:112)
              at com.crystaldecisions.proxy.remoteagent.RemoteAgent.createDefaultAgent(RemoteAgent.java:1000)
              at com.crystaldecisions.sdk.occa.report.application.ClientDocument.initRemoteAgent(ClientDocument.java:770)
              at com.crystaldecisions.sdk.occa.report.application.ClientDocument.open(ClientDocument.java:961)
              at com.crystaldecisions.sdk.occa.report.application.ReportClientDocument.open(ReportClientDocument.java:226)
              at src.HelloWorldSwing.createAndShowGUI(HelloWorldSwing.java:54)
              at src.HelloWorldSwing.main(HelloWorldSwing.java:24)
    Source:
    import java.awt.BorderLayout;
    import javax.swing.JFrame;
    import com.crystaldecisions.ReportViewer.ReportViewerBean;
    import com.crystaldecisions.sdk.occa.report.application.DatabaseController;
    import com.crystaldecisions.sdk.occa.report.application.OpenReportOptions;
    import com.crystaldecisions.sdk.occa.report.application.ReportClientDocument;
    import com.crystaldecisions.sdk.occa.report.data.IConnectionInfo;
    import com.crystaldecisions.sdk.occa.report.reportsource.IReportSource;
    public class HelloWorldSwing {
               * @param args
              public static void main(String[] args) {
                        HelloWorldSwing pgm = new HelloWorldSwing();
                        try {
                                  pgm.createAndShowGUI();
                        } catch (Exception e) {
                                  e.printStackTrace();
                                  //JOptionPane.showMessageDialog(null, e.toString());
               * @throws Exception
              public void createAndShowGUI() throws Exception {
                        // Make sure we have nice window decorations.
                        JFrame.setDefaultLookAndFeelDecorated(false);
                        // Create and set up the window.
                        JFrame frame = new JFrame("HelloWorldSwing");
                        frame.setTitle("Titolo del Report");
                        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                        ReportViewerBean viewer = new ReportViewerBean();
                        viewer.init(new String[0], null, null, null);
                        ReportClientDocument rpt = new ReportClientDocument();
                        rpt.setReportAppServer(ReportClientDocument.inprocConnectionString); // inproc:jrc
                        rpt.open("Report.rpt", OpenReportOptions._openAsReadOnly);
                        IReportSource rptSource = rpt.getReportSource();
                        viewer.setReportSource(rptSource);
                        frame.getContentPane().add(viewer, BorderLayout.CENTER);
                        frame.setSize(1930, 1030);
                        frame.setVisible(true);
                        viewer.start();

  • Problem while deploying a webdynpro java application in NWDS 7.1 version

    HI All,
            I got the below error when i deploying the  webdynpro java application in NWDS 7.1 version..help me out...........................................
    Exception:
    com.sap.ide.eclipse.deployer.api.APIException: ConnectionException,cause=[Ecc]
    NameNotFoundException.The SAP J2EE ENGINE service 'tcbldeploy_controller' is not available
    because of deployment or down engine( service ).
    Reason: Object not found in lookup of
    tcbldeploy_controller.
         at
    com.sap.ide.eclipse.deployer.dc.ComponentManagerImpl.getDeployProcessor(ComponentManagerImpl
    .java:64)
         at com.sap.ide.eclipse.sdm.threading.DCDeployThread.run(DCDeployThread.java:118)
    Caused by: com.sap.engine.services.dc.api.ConnectionException: [ERROR CODE DPL.DCAPI.1118]
    NameNotFoundException.The SAP J2EE ENGINE service 'tcbldeploy_controller' is not available
    because of deployment or down engine( service ).
    Reason: Object not found in lookup of
    tcbldeploy_controller.
         at
    com.sap.engine.services.dc.api.session.impl.SessionImpl.createCM(SessionImpl.java:320)
         at
    com.sap.engine.services.dc.api.deploy.impl.DeployProcessorImpl.<init>(DeployProcessorImpl.ja
    va:136)
         at
    com.sap.engine.services.dc.api.deploy.impl.DeployProcessorFactoryImpl.createDeployProcessor(
    DeployProcessorFactoryImpl.java:26)
         at
    com.sap.engine.services.dc.api.impl.ComponentManagerImpl.getDeployProcessor(ComponentManager
    Impl.java:46)
         at
    com.sap.ide.eclipse.deployer.dc.ComponentManagerImpl.getDeployProcessor(ComponentManagerImpl
    .java:58)
         ... 1 more
    Caused by: com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Object
    not found in lookup of tcbldeploy_controller.
         at
    com.sap.engine.services.jndi.implserver.ServerContextImpl.lookup(ServerContextImpl.java:649)
         at
    com.sap.engine.services.jndi.implserver.ServerContextRedirectableImpl.lookup(ServerContextRe
    directableImpl.java:80)
         at
    com.sap.engine.services.jndi.implserver.ServerContextImplp4_Skel.dispatch(ServerContextImplp
    4_Skel.java:555)
         at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:319)
         at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:200)
         at
    com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:136
         at
    com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.pro
    cess(ApplicationSessionMessageListener.java:33)
         at
    com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:102)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172)

    First check is Java stack is running ?
    make sure J2EE_ADMIN user not locked.
    Ans please check password in secure area. check password in secure store should be correct.
    may be you can try with restart of SAP and DB.
    All the best
    regards
    nag

  • Storing chinese in client odb from java application

    Hi all,
    first i like to thank Greg Rekounas for his wonderful support and contribution....
    This is my server setup.
    os-windows 2000 sp4
    db-oracle 9ir2 (unicode with AL32UTF8 charset)
    lite-oracle10g r2 (with latest patchset)
    nls_lang- AMERICAN_AMERICA.AL32UTF8
    storing and retriving chinese in oracle 9i database from isql*plus works.
    lite configuration.
    1. In $OLITE_HOME\mobile_oc4j\j2ee\mobileserver\applications
    \mobileserver\setup\common\webtogo\webtogo.ora file edited the JAVA_OPTION
    to:
    JAVA_OPTION=-Djava.compiler=NONE -Dfile.encoding=UTF8
    2. In $OLITE_HOME\mobile_oc4j\j2ee\mobileserver\applications
    \mobileserver\setup\dmc\common\win32.inf file, added the following:
    a. In the <file> section, added the following:
    <item>
    <src>/common/win32/olilUTF8.dll</src>
    <des>$APP_DIR$\bin\olilUTF8.dll</des>
    </item>
    b. In the <ini> section, added the following:
    <item name='POLITE.INI' section='All Databases'>
    <item name="DB_CHAR_ENCODING">UTF8</item>
    </item>
    <item name='POLITE.INI' section='SYNC'>
    <item name="DB_ENCODING">UTF8</item>
    </item>
    published the application developed in java using packaging wizard.
    downloaded the client in the pc with the following config:
    windows 2000 (english)
    nls - default.
    installed chinese language support.
    tried to access 9i database from isql*plus and stored & viewed chinese characters sucessfully.
    tried to store a chinese character from java application in the client odb -- failed.
    values are getting inserted from the application but when i view them back it shows & # 2 6 0 8 5 ; (i have included a space in between all 8 characters.
    but when i copy this no and paste in msword it shows 日(chinese character)
    i dont know the exact reason for the above scenerio...................
    Also please help me on this too.......
    why can i store & view chinese characters sucessfully in isql*plus from the client machine while i cannot do the same on client odb from java application even though the lite config are done to support utf8?
    is anything i left out?
    should i do any codes changes in java?(java application is of verision jdk1.4_13)
    Thanks,
    Ashok kumar.G

    Sorry for late replay!! in the SharePoint server both the Claim based and Classic mode is enabled in the server, but still I want to get authenticated via Classic mode just like it happens in SharePoint  2007 and 2010, so do i have to use a different
    set of classes to do that if yes can you please tell me those ?

  • APEX application integration into Java application

    Hello,
    I'm working on a new APEX application and I would like to integrate that application into an existing Java application.
    The integration should be invisible for the end-users. Our application will have the same look and feel as the Java application.
    The existing menu of the Java app will be extended with a new link. This link will then call our application.
    Visually I was thinking about using an Iframe to display the content of the APEX application inside the Java generated xHTML.
    This is however not the biggest issue.
    We are working in a secure context and we thus need to make sure that our APEX application doesn't create a backdoor on the
    security mechanism provided by the Java app.
    Some options have come to mind, but the one that look best is this:
    We keep the java application as the single point of entry for our end-users and make sure that the apex application is "hidden".
    We could do this by means of some re-routing code in the java application so that the incomming requests there are send to the correct server (java or apex).
    Then we will need to capture the response of the APEX application and place it inside the Java generated xHTML. The combined content is then send to the client.
    Or we could place a reverse proxy server that does this for us.
    The goal is thus that we can rely on the existing java application to cover the security and the navigation structure.
    Any ideas on this ?
    How-to's or other options ?
    thanks & regards
    Karel

    In a project I am currently working on we do it using iframes and passsing parameters over a http link.
    Denes Kubicek
    http://deneskubicek.blogspot.com/
    http://www.opal-consulting.de/training
    http://apex.oracle.com/pls/otn/f?p=31517:1
    -------------------------------------------------------------------

  • How to let users run your Java application

    Hello,
    I'm writing an application using JBuilder7 and it's wonderful designer: so far it is composed by only 2 class and imports java.awt.* and javax.swing.* (SDK 1.4)
    Now, I've yet to finish it but I was wondering: "how will users be able to use it?"
    I don't want them to install 30+ Mb of SDK so I've looked into the forums and elsewhere and come up with several answers:
    1) Let them install JRE: but it's 10+ Mb and they would need to download it separately from my program.
    2) Let them use somehow their browser's JVM..(should I turn my application into applet for this? I guess so)
    3) Make an .exe: I know there are many programs to make .exe from java but they would make a one-platform-based file.
    Also there were many hints about using .jar files to get things easier.
    Is there a 4th option in which users have to download only a few mbs to use the application?
    And about .jar, how should I use it?
    Thank you very much for all your help :)

    Simply put - the users must download or be supplied the JRE. This must be installed before they can execute your java application.
    As to distributing the application itself - You can jar (Java Archive) your classes into a single file.
    You could as has been suggested create an EXE, but these generally are very large and tend to severely restrict the range of java technologies able to be used (EG Serialization, RMI, Reflection, class loading, ...)
    Java is not intended for little tools that get installed separately - It is intended for larger applications or small applets in which case the download of the JRE is a minor concern.
    Note that applets targeting Java 1.1.7 functionality work fine with most old browsers inbuilt JVMs - Your customers browser may not however have an inbuilt JVM and the user will still need to download the JRE to execute a SWING based applets.
    Talden

  • How to get Portal user from a standalone Java application

    Hi,
    I have a standalone Java application from where I need to fetch the Portal User Information like userid and email id.
    I am using the below line of code
    iUser = UMFactory.getUserFactory().getUserByLogonID("e017939");
    I have included the jar file com.sap.security.api , But it was giving me the below exception
    java.lang.NoClassDefFoundError: com/sap/tc/logging/Location
         at com.sap.security.api.UMFactory.<clinit>(UMFactory.java:55)
         at com.am.wcas.java.mailscheduler.kmaccess.FetchDataFromKM.getiUser(FetchDataFromKM.java:29)
         at com.am.ScheduleEmails.main(ScheduleEmails.java:89)
    and I am getting a pop Up message from the Java Virtual Machine Launcher, saying a Fatal Exception has occured and the Program will exit.
    Then I went throught he SDN threads and they asked me to include the
    logging.jar and com.sap.security.perm.api .
    I Included them, then also, it is giving me Exception
    java.lang.NoClassDefFoundError: com/sap/engine/lib/logging/LoggingHelper
         at com.sap.security.api.UMFactory.<clinit>(UMFactory.java:56)
         at com.am.FetchKMData.main(FetchKMData.java:30)
    Exception in thread "main"
    and I am getting a pop Up message from the Java Virtual Machine Launcher, saying a Fatal Exception has occured and the Program will exit.
    Kindly let me know if it is possible to access the User info using UMFactory in a standalone Java application. If yes kindly let me know where i am going wrong.
    Regards,
    Shilpa B.V

    Hi Shilpa,
    1. Check that you have added com.sap.security.api within the Your Project>Libraries folder (under navigation tab) and also added jars in the build path of the Your Project under project>properties>Build Path.
    2. In case you have a DC instead of Web Dynpro Project then you have to add the com.sap.security.api under Your DC>Used DCs and have compile time and runtime dependency added.
    Here java.lang.NoClassDefFoundError is caused basically due to only build time dependency added and reference to the jar missing at runtime. Rest the code to retrieve the current user id using UME API and getUserByLogOnID("....") method with/without portal environment would not be an issue at all.
    Regards,
    Tushar SInha

  • Web Application and Java Application

    Hello,
    I have a standalone Java application and a web application (JSP/Servlets) that I would like integrate. The standalone app. should send some information to my web app (which is not a problem), but then the user can be at this web app. for a while and then once he sees something he likes here, he can select it which should take him BACK to the standalone application. My question is whether something like this is possible?
    If so, then how do i do it.
    Also the web app and the standalone app run to 2 separate machines and 2 different JVM's.
    Any kind of help will be great.
    Thanks

    Well let me describe the scenario in detail
    We have a standalone java application that is good to search for data across an enterprise database. We also have another application which is web based and uses jsp's and servlets and is good for displaying data in different ways, let's say different kind of graps. Now the user will typically search for something using the standalone application and once he finds what he is looking for, then he might say that he wants to graph the selected data using this web application. Now this part is not too difficult as the standalone app can simply POST the selected information to the web app and the web app can then plot the graph. However, the tricky part is that this web application has the capability to allow the user to select let's say a bar and then get additional info. on that bar. Now to get this additional info. the web app. must contact the standalone app and tell it what bar was selected to get the additional info.
    so my concern is how does the web app contact the standalone app. or even KNOW about this web app. Also, RMI is pretty flaky and i would much rather use web services to accomplish it. If that is the only way to go that is.
    Hope that helps.

  • Help please! Java application and web application...

    Hi,
    I have a problem with inserting a java application (Main.java) in a web application(index.jsp).
    I found a source demo of a drag and drop application on the Internet, but now I want to
    have the drag and drop application work in a Jpanel/JFrame in a webapplication.
    The drag and drop application code:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.border.*;
    public class Main {
        public static void main(final String[] args) {
            final ButtonGroup grp = new ButtonGroup();
            final JPanel palette = new JPanel(new FlowLayout(FlowLayout.LEFT));
            palette.setBorder(BorderFactory.createTitledBorder("Palette"));
            final MainPanel mainPanel = new MainPanel();
            mainPanel.setPalette(palette);
            for(int j=0; j<4; j++){
                final JToggleButton btn = new JToggleButton("Panel "+(j+1));
                palette.add(btn);
                grp.add(btn);
                btn.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        mainPanel.setAdding(btn.getText());
            final JFrame f = new JFrame("Drag and drop panels");
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.getContentPane().add(palette, BorderLayout.WEST);
            f.getContentPane().add(mainPanel, BorderLayout.CENTER);
            f.setSize(800, 600);
            f.setVisible(true);
    class MainPanel extends JPanel implements MouseListener, MouseMotionListener {
        private JPanel palette;
        private String adding="";
        private SubPanel hitPanel;
        private int deltaX, deltaY, oldX, oldY;
        private final int TOL = 4;  //tolerance
        public MainPanel() {
            setLayout(null);
            addMouseListener(this);
            addMouseMotionListener(this);
        public void mousePressed(final MouseEvent e) {
            if( adding != "" ){
                setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
                SubPanel sub = new SubPanel(adding);
                add(sub);
                sub.setSize(sub.getPreferredSize());
                sub.setLocation((int)e.getX(),(int)e.getY());
                revalidate();
                adding = "";
                return;
            Component c = getComponentAt(e.getPoint());
            if (c instanceof SubPanel) {
                hitPanel = (SubPanel) c;
                oldX = hitPanel.getX();
                oldY = hitPanel.getY();
                deltaX = e.getX() - oldX;
                deltaY = e.getY() - oldY;
                if( oldX < e.getX()-TOL ) oldX += hitPanel.getWidth();
                if( oldY < e.getY()-TOL ) oldY += hitPanel.getHeight();
        public void mouseDragged(final MouseEvent e) {
            if (hitPanel != null) {
                int xH = hitPanel.getX();
                int yH = hitPanel.getY();
                int xDiff = e.getX()-oldX;
                int yDiff = e.getY()-oldY;
                int cursorType = hitPanel.getCursor().getType();
                if( cursorType == Cursor.W_RESIZE_CURSOR){           //West resizing
                    hitPanel.setBounds( e.getX(), yH, hitPanel.getWidth() - xDiff, hitPanel.getHeight() );
                }else if( cursorType == Cursor.N_RESIZE_CURSOR){     //North resizing
                    hitPanel.setBounds( xH, e.getY(), hitPanel.getWidth(), hitPanel.getHeight() - yDiff );
                }else if( cursorType == Cursor.S_RESIZE_CURSOR){     //South resizing
                    hitPanel.setSize( hitPanel.getWidth(), hitPanel.getHeight() + yDiff );
                }else if( cursorType == Cursor.E_RESIZE_CURSOR){     //East resizing
                    hitPanel.setSize( hitPanel.getWidth() + xDiff, hitPanel.getHeight() );
                }else if( cursorType == Cursor.NW_RESIZE_CURSOR){     //NorthWest resizing
                    hitPanel.setBounds( e.getX(), e.getY(), hitPanel.getWidth() - xDiff, hitPanel.getHeight() - yDiff );
                }else if( cursorType == Cursor.NE_RESIZE_CURSOR){     //NorthEast resizing
                    hitPanel.setBounds( xH, e.getY(), hitPanel.getWidth() + xDiff, hitPanel.getHeight() - yDiff );
                }else if( cursorType == Cursor.SW_RESIZE_CURSOR){     //SouthWest resizing
                    hitPanel.setBounds( e.getX(), yH, hitPanel.getWidth() - xDiff, hitPanel.getHeight() + yDiff );
                }else if( cursorType == Cursor.SE_RESIZE_CURSOR){     //SouthEast resizing
                    hitPanel.setBounds( xH, yH, hitPanel.getWidth() + xDiff, hitPanel.getHeight() + yDiff );
                }else{      //moving subpanel
                    hitPanel.setLocation( e.getX()-deltaX, e.getY()-deltaY );
                oldX = e.getX();
                oldY = e.getY();
        public void mouseMoved(final MouseEvent e) {
            Component c = getComponentAt(e.getPoint());
            if (c instanceof SubPanel) {
                int x  = e.getX();
                int y  = e.getY();
                int xC = c.getX();
                int yC = c.getY();
                int w  = c.getWidth();
                int h  = c.getHeight();
                if(       y >= yC-TOL   && y <= yC+TOL && x >= xC-TOL   && x <= xC+TOL  ){
                    c.setCursor(new Cursor(Cursor.NW_RESIZE_CURSOR));
                }else if( y >= yC-TOL   && y <= yC+TOL && x >= xC-TOL+w && x <= xC+TOL+w ){
                    c.setCursor(new Cursor(Cursor.NE_RESIZE_CURSOR));
                }else if( y >= yC-TOL+h && y <= yC+TOL+h && x >= xC-TOL   && x <= xC+TOL ){
                    c.setCursor(new Cursor(Cursor.SW_RESIZE_CURSOR));
                }else if( y >= yC-TOL+h && y <= yC+TOL+h && x >= xC-TOL+w && x <= xC+TOL+w ){
                    c.setCursor(new Cursor(Cursor.SE_RESIZE_CURSOR));
                }else if( x >= xC-TOL   && x <= xC+TOL ){
                    c.setCursor(new Cursor(Cursor.W_RESIZE_CURSOR));
                }else if( y >= yC-TOL   && y <= yC+TOL ){
                    c.setCursor(new Cursor(Cursor.N_RESIZE_CURSOR));
                }else if( x >= xC-TOL+w && x <= xC+TOL+w ){
                    c.setCursor(new Cursor(Cursor.E_RESIZE_CURSOR));
                }else if( y >= yC-TOL+h && y <= yC+TOL+h ){
                    c.setCursor(new Cursor(Cursor.S_RESIZE_CURSOR));
                }else{
                    c.setCursor(new Cursor(Cursor.MOVE_CURSOR));
        public void mouseReleased(final MouseEvent e) { hitPanel = null; }
        public void mouseClicked(final MouseEvent e) {}
        public void mouseEntered(final MouseEvent e) {}
        public void mouseExited(final MouseEvent e) {}
        public void setAdding(final String string) {
            adding = string;
            setCursor(new Cursor(Cursor.HAND_CURSOR));
        public void setPalette(final JPanel panel) { palette = panel; }
    class SubPanel extends JPanel {
        public SubPanel(final String name) {
            setPreferredSize(new Dimension(100, 100));
            setBorder(new TitledBorder(new LineBorder(Color.BLACK), name));
    }This application works with JFrame, but I want to display the JFrame in a webapplication (JSP Page).
    I'm using Netbeans 6.0 (GlassFish) to create webapplication using Visual Web JavaServer Faces.
    So in summary:
    How can i display the drag and drop application into a JFrame (better in a JPanel) in a webapplication (index.jsp)??
    Hope you can help...
    Thanks in advance...
    Greetings,
    Rajsh

    So have an applet that opens a JFrame... JSP or not has nothing to do with it, since it's nothing but HTML the client gets.
    You can't have a JFrame embedded in an HTML page. And if you could have an applet but don't know how to get that copied code to fit inside (I mean, content pane is content pane), you might want to consider learning how to do that.

Maybe you are looking for