aspose file tools*
The moose likes Applets and the fly likes running Applets from a Mac Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Applets
Bookmark "running Applets from a Mac" Watch "running Applets from a Mac" New topic
Author

running Applets from a Mac

Christopher Coulon
Greenhorn

Joined: Nov 16, 2006
Posts: 11
I have a Mac G5 and am trying to run an applet on any webbrowser. I create the applet in XCode 2.4 and it runs in the sun applet viewer when I do a "Build and Go," but importing it to my trial copy of Dreamweaver 8 always results in failure on Safari or Netscape. In Safari I just get an "X" and in Netscape I get the "Start: applet not initialized" error. I have looked through all the previous lists here, but can find nothing that helps me. I would like to run a complex application, but right now I can't even get a simple "Hello World" applet to work. Any suggestions? Thanks so much in advance!
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 41477
    
  51
Does it work in appletviewer if you start it from the command line? What is your general directory layout, i.e. which files are where?


Ping & DNS - my free Android networking tools app
Christopher Coulon
Greenhorn

Joined: Nov 16, 2006
Posts: 11
I haven�t tried to run it from the command line, mostly because I didn�t realize that was an option. I don�t know how to do that. My Xcode project is one folder in my Home folder and the Dreamweaver website is in another folder in the Home folder. I tried putting the jar file and the html file in the Dreamweaver folder and linking to them from there, but I got the same result � they do not work in Safari or Netscape.
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 41477
    
  51
You can try using appletviewer by typing "appletviewer <name-of-HTML-file>" on the command line.

How do you reference the jar file in the HTML - can you show us the applet tag?
Christopher Coulon
Greenhorn

Joined: Nov 16, 2006
Posts: 11
>You can try using appletviewer by typing "appletviewer <name-of-HTML-file>" on the command line.<

OK, thanks, that works fine. I get the applet for my simple test applet, but I get the �Start: applet not initialized� error with my more complex applet.

>How do you reference the jar file in the HTML - can you show us the applet tag?<

This is the tag in XCode:

<APPLET archive="Applet_Conduit_Fill.jar" code="Applet_Conduit_Fill" width=300 height=150>
Your browser does not support Java, so nothing is displayed.
</APPLET>

But my browsers DO support java, so what does this mean?
Christopher Coulon
Greenhorn

Joined: Nov 16, 2006
Posts: 11
In XCode I changed the applet tag to:

<APPLET archive="Applet_Conduit_Fill.jar" code="Applet_Conduit_Fill" width=550 height=650>
</APPLET>

and made sure the jar, class and html files were all in the same folder, then went to Dreamweaver and did Insert>Media>Applet and selected the class file. Now when I preview in Safari, the applet works as it should, but Modzilla and Netscape both give the exception:

java.lang.ClassNotFoundException: Applet_Condulet_Fill.class

and at the bottom there is the cryptic �Start: applet not initialized� message. Any insights as to why it should work in Safari but not the other browsers?

Is there a way to implement an application on a website without using an applet? For example, a simple box where a user can enter a number and the application will calculate and return an answer?

Thanks in advance.
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 41477
    
  51
The tag looks good. You could try to specifying the class name by appending ".class" to it, because the Sun Java Tutorial on Applets does it like that. Some browsers/plugins are picky that way. Aside from that, just make sure that wherever you copy the files, the HTML file and the jar file need to be in the same directory.

The "Your browser does not support Java, so nothing is displayed." is just there in case the browser has no Java or Java turned off, in which case it would ignore the applet tag and display what's inside it (i.e., that message). It has no bearing on the problem at hand.
Christopher Coulon
Greenhorn

Joined: Nov 16, 2006
Posts: 11
>You could try to specifying the class name by appending ".class" to it,� Aside from that, just make sure that wherever you copy the files, the HTML file and the jar file need to be in the same directory.<

I had to create a new project in Dreamweaver and use the Terminal to create the class file (using javac) and the jar file (using jar cvfM �) and although I can get it to work fine in Safari, I still get the errors in Modzilla. I don�t get it. Other than turning java on in Modzilla, I can find no way to assign a java version, so I have to assume it is using the system version, java 1.6.0. Any insights? Thanks.
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 41477
    
  51
Which errors are those exactly - there should be a more detailed error message in either system.log or console.log (you can use Console.app to look at those).

Are you really running Java 6 on the Mac? Then I wouldn't be surprised to encounter problems - it's still in development, after all.
[ November 17, 2006: Message edited by: Ulf Dittmer ]
Christopher Coulon
Greenhorn

Joined: Nov 16, 2006
Posts: 11
<Which errors are those exactly>

Here is part of the console log (and yes, I am really running java 1.6 :-):

Tried to create the VM in the Java Applet.plugin.
We detected that one already was created for this browser.
Using existing VM.
**Warning** this VM MAY not have the expected Java Runtime Parameters.
load: class Applet_Conduit_Fill.class not found.
java.lang.ClassNotFoundException: java.io.FileNotFoundException: /GAIA_G5/Users/chris/**JavaProjects/Applets/Applet Conduit Fill/Dreamweaver/Applet_Conduit_Fill/class.class (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:91)
at java.io.FileInputStream.<init>(FileInputStream.java:54)
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:64)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:128)
at sun.applet.AppletClassLoader.getBytes(AppletClassLoader.java:261)
at sun.applet.AppletClassLoader.access$100(AppletClassLoader.java:39)
at sun.applet.AppletClassLoader$1.run(AppletClassLoader.java:143)
at java.security.AccessController.doPrivileged(Native Method)
at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:140)
at sun.plugin.security.PluginClassLoader.findClass(PluginClassLoader.java:269)
at java.lang.ClassLoader.loadClass(ClassLoader.java:294)
at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:117)
at java.lang.ClassLoader.loadClass(ClassLoader.java:250)
at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:551)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:582)
at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1323)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:511)
at sun.applet.AppletPanel.run(AppletPanel.java:289)
at java.lang.Thread.run(Thread.java:489)
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 41477
    
  51
There's the problem:

load: class Applet_Conduit_Fill.class not found.
java.lang.ClassNotFoundException: java.io.FileNotFoundException: /GAIA_G5/Users/chris/**JavaProjects/Applets/Applet Conduit Fill/Dreamweaver/Applet_Conduit_Fill/class.class (No such file or directory)


The class is not called Applet_Conduit_Fill.class, it's called Applet_Conduit_Fill, so here it works the other way around from what I mentioned earlier (the class name should apparently not include the ".class" extension).
Christopher Coulon
Greenhorn

Joined: Nov 16, 2006
Posts: 11
> The class is not called Applet_Conduit_Fill.class, it's called Applet_Conduit_Fill, so here it works the other way around from what I mentioned earlier (the class name should apparently not include the ".class" extension).<

The folder in the path:

/GAIA_G5/Users/chris/Desktop/TestDreamweaver/

contains the following files:

Applet_Conduit_Fill.class
Applet_Conduit_Fill.jar
Applet_Conduit_Fill.java
example1.html

so I don�t understand the error. I discovered some spaces in the path of the last attempt and thought that might have been the problem, but correcting it made no difference. Omitting the .class extension does show the whole class name in the error, but there is still an error somewhere.

===== Saturday, November 18, 2006 8:48:24 AM US/Pacific =====
Tried to create the VM in the Java Applet.plugin.
We detected that one already was created for this browser.
Using existing VM.
**Warning** this VM MAY not have the expected Java Runtime Parameters.
load: class Applet_Conduit_Fill not found.
java.lang.ClassNotFoundException: java.io.FileNotFoundException: /GAIA_G5/Users/chris/Desktop/TestDreamweaver/Applet_Conduit_Fill.class (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:91)
at java.io.FileInputStream.<init>(FileInputStream.java:54)
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:64)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:128)
at sun.applet.AppletClassLoader.getBytes(AppletClassLoader.java:261)
at sun.applet.AppletClassLoader.access$100(AppletClassLoader.java:39)
at sun.applet.AppletClassLoader$1.run(AppletClassLoader.java:143)
at java.security.AccessController.doPrivileged(Native Method)
at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:140)
at sun.plugin.security.PluginClassLoader.findClass(PluginClassLoader.java:269)
at java.lang.ClassLoader.loadClass(ClassLoader.java:294)
at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:117)
at java.lang.ClassLoader.loadClass(ClassLoader.java:250)
at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:551)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:582)
at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1323)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:511)
at sun.applet.AppletPanel.run(AppletPanel.java:289)
at java.lang.Thread.run(Thread.java:489)
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 41477
    
  51
Is the Applet_Conduit_Fill class actually in the jar file? I'm not sure if the browser will look at the standalone classes if an archive attribute is present.

The error message is indeed strange - is the Applet_Conduit_Fill.class file readable by the browser, e.g. if you enter its path into the URL field?
Christopher Coulon
Greenhorn

Joined: Nov 16, 2006
Posts: 11
>Is the Applet_Conduit_Fill class actually in the jar file? I'm not sure if the browser will look at the standalone classes if an archive attribute is present.<

Yes, the jar file contains the class, java, and html files.

>The error message is indeed strange - is the Applet_Conduit_Fill.class file readable by the browser, e.g. if you enter its path into the URL field?<

It is readable in Safari, but when I attempt to read it in Modzilla, I get the following error in the console.log:

===== Saturday, November 18, 2006 4:01:50 PM US/Pacific =====
Tried to create the VM in the Java Applet.plugin.
We detected that one already was created for this browser.
Using existing VM.
**Warning** this VM MAY not have the expected Java Runtime Parameters.
java.lang.UnsupportedClassVersionError: Applet_Conduit_Fill (Unsupported major.minor version 50.0)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:488)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:106)
at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:148)
at sun.plugin.security.PluginClassLoader.findClass(PluginClassLoader.java:269)
at java.lang.ClassLoader.loadClass(ClassLoader.java:294)
at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:117)
at java.lang.ClassLoader.loadClass(ClassLoader.java:250)
at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:546)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:582)
at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1323)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:511)
at sun.applet.AppletPanel.run(AppletPanel.java:289)
at java.lang.Thread.run(Thread.java:489)
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 41477
    
  51
(Unsupported major.minor version 50.0)

This means that the Java code has been compiled with a newer version of Java than the browser plugin can handle. Class files of version 50.0 are created by Java 6, so it seems that Mozilla uses at most the Java 5 plugin. You can check that by entering "about lugins" in the Mozialla/Firefox URL field.

Assuming that the code doesn't use Java 6-only features you can compile it by using the -source and -target switches of javac. Then the class files are executable by older JVMs/browser plugins.
Christopher Coulon
Greenhorn

Joined: Nov 16, 2006
Posts: 11
>it seems that Mozilla uses at most the Java 5 plugin. You can check that by entering "about lugins" in the Mozialla/Firefox URL field.<

My version of Modzilla shows java 1.3.1 for the java Applet plugin enabler. It also gave me the warning that I don�t have the latest version, so I downloaded the latest version and got the same java version.

>Assuming that the code doesn't use Java 6-only features you can compile it by using the -source and -target switches of javac. Then the class files are executable by older JVMs/browser plugins.<

Good theory, and we may be getting closer here, but compiling the java code using:

javac -source 1.2 -target 1.2 Applet_Conduit_Fill.java

results in the following error in Modzilla:

===== Monday, November 20, 2006 8:25:09 AM US/Pacific =====
Tried to create the VM in the Java Applet.plugin.
We detected that one already was created for this browser.
Using existing VM.
**Warning** this VM MAY not have the expected Java Runtime Parameters.
java.lang.NoClassDefFoundError: javax/swing/JFormattedTextField
at java.lang.Class.newInstance0(Native Method)
at java.lang.Class.newInstance(Class.java:232)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:582)
at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1323)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:511)
at sun.applet.AppletPanel.run(AppletPanel.java:289)
at java.lang.Thread.run(Thread.java:489)
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 41477
    
  51
Well, the javadocs for JFormattedTextField say that the class got added in Java 1.4, so you can't reasonably expect to generate classes that are compatible with Java 1.2. Until the JVM your browser uses has a 1.4 JVM (you indicated that it still has a 1.3 JVM), it won't be able to run that code.
Christopher Coulon
Greenhorn

Joined: Nov 16, 2006
Posts: 11
Yes, that certainly makes sense. OK, I think that answers all my questions. Thanks so much for your patience and your careful help. I learned a lot while investigating your answers, and you certainly saved me a lot of time. I appreciate it.
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 41477
    
  51
You're welcome.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: running Applets from a Mac