Aug 96 Top 10
Volume Number: | | 12
|
Issue Number: | | 8
|
Column Tag: | | Symantec Top Ten
|
Symantec Top 10
By Rick Hartmann
Note: Source code files accompanying article are located on MacTech CD-ROM or source code disks.
With all the excitement about Java, and the recent release of Symantec Café for Macintosh, we thought we would devote this issue of the Symantec Top Ten to Java.
(As this article goes to press there are updates to Café and Suns Java Development Kit for Macintosh soon to be released. Due to the rapid development cycle of these Java products, there will likely be numerous changes and bug fixes during this phase. Please read the release notes for the latest version of Café to determine if a specific problem has been resolved, and check the Café Web site, http://cafe.symantec.com, for the latest news regarding Java and Café.)
Q: Sometimes when I double-click on a C++ project, I get the Café Version of the Project Manager. Why?
A: The standalone Café Project Manager will soon be integrated into the Symantec Project Manager along with C++, C, and Pascal. Therefore the creator type was left the same as the SPM. This may cause some confusion until then, so if you have both Symantec Project Manager for C++ and Café, you should get in the habit of dragging project files directly to the Café icon or an alias on the desktop with a name that identifies it as the Café Project Manager.
Q: When I try to use java.net.ServerSocket or java.net.Socket, etc., I am getting a Java runtime error:
Can't get watchdog proc
What is wrong?
A: The Macintosh Java virtual machine does not correctly handle the java.net package as of this writing. We expect an update from Sun that will correct this well before you read this. There is currently no workaround.
Q: My applets mouseMove() function is getting called continuously, even when the mouse does not move. Why?
A: This is an AppletViewer problem. Try dragging the HTML file from your applet project onto a Java-enabled browser instead.
Q: My applet behaves differently depending on whether I run it in the AppletViewer or in Netscape. Why?
A: There are a good number of quirks with the AppletViewer right now. Both products are beta. As these products mature and reach their final versions, we expect their behavior to be more consistent.
Q: Choosing the default font in Café Studio seems to cause a runtime error:
java.lang.NullPointerException
at java.awt.Font.<init>(Font.java)
at studio.init(studio.java:101)
at sun.applet.AppletPanel.run(AppletPanel.java)
at java.lang.Thread.run(Thread.java)
How do I fix this?
A: Studio generates the following:
myItemfont = new Font(null, Font.PLAIN, 9);
The first parameter must be a String; hence the exception. In the next release this will be changed to:
myItemfont = new Font("", Font.PLAIN, 9);
Q: Why am I getting this compile error?
Error: File Foo.class does not contain Foo as expected, but java.Apackage.Foo. Please remove the file.
A: You forgot to import java.apackage.foo.
Q: I renamed my Java applications HelloWorld.java source file to foo.java, and also changed public class HelloWorld to public class foo; but now when I choose Run from the Project Manager, I get:
Could not complete the last command because the file was not found... -43
or:
Could not complete the last command because the AppleEvent was not handled... -1708
What did I forget?
A: Under the Project menu, in Options: Project Type, you must set the main() class popup to the name of your class that contains the main() method.
Q: When I run my Java application, I get this error in the stderr window:
java.lang.IllegalAccessException: ClassName
at sun.applet.AppletPanel.run(AppletPanel.java)
at java.lang.Thread.run(Thread.java)
java.lang.NullPointerException
at sun.applet.AppletPanel.run(AppletPanel.java)
at java.lang.Thread.run(Thread.java)
The stdout window contains this message:
load: ClassName is not public or has no public constructor.
What is wrong?
A: Your project type was set to be an applet instead of an application. Go to the Project menu and choose Options. Click on the Project Type. Set the Program Type radio button to Application and make sure the main() class popup menu is set to your class name that contains your main() method.
Q: When I try to run the StdinTest program from the Introduction to Java demos, it hangs my system. Why?
A: The current version of the Macintosh Java virtual machine is not doing standard (keyboard) input correctly. We expect Sun to correct this soon. It will probably be functional by the time you read this. Check our Web page for the latest information on these issues.
Q: How do I save the stdout and stderr windows to a file? Can I redirect stdout and stderr to files, like I can with C and C++?
A: Yes to both questions. Launch the AppletViewer. From the Apple menu select the Java Runtime menu. It contains menu items for both redirection of stdout and stderr as well as a Save Text Window item for the frontmost text window.
Q: I drag the applet class file on the AppletViewer and I get an error. How do I run applets?
A: Applets are designed to be run within the context of a Web browser that supports the Java virtual machine. You must first create a Web page with the proper HTML tags for your applet. At a minimum, for an applet to run, youll need:
<applet code = myAppletName width=300 height=400>
</applet>
You can then drag the HTML file on the AppletViewer or a Java-enabled browser.
Thanks to Andy McFarland, Kevin Quah, Scott Morison, Noah Lieberman, Michael Hopkins, Levi Brown, Glenn Austin, Steve Howard, Craig Conner, Chris Prinos, Peter Fry, and Mark Baldwin for their contributions to this article.