Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让一个简单的Hello World Java小程序在Mac OS X的浏览器中工作?_Java_Html_Macos_Applet - Fatal编程技术网

如何让一个简单的Hello World Java小程序在Mac OS X的浏览器中工作?

如何让一个简单的Hello World Java小程序在Mac OS X的浏览器中工作?,java,html,macos,applet,Java,Html,Macos,Applet,我在MacOSX10.5.6上使用JavaSE1.6。我的小程序的代码如下所示: import java.awt.Graphics; import javax.swing.JApplet; public class HelloWorld extends JApplet { public void paint( Graphics g ) { super.paint( g ); g.drawString( "Hello World!", 2

我在MacOSX10.5.6上使用JavaSE1.6。我的小程序的代码如下所示:

import java.awt.Graphics;
import javax.swing.JApplet;

public class HelloWorld extends JApplet {

    public void paint( Graphics g ) {
            super.paint( g );
            g.drawString( "Hello World!", 25, 25 );
    }

}
<html>

<head>
    <title>Hello World</title>
</head>

<body>
    <applet code="HelloWorld.class" height="300" width="300">
            Your browser is ignoring the applet tag.
    </applet>
</body>

</html>
我把它编译成一个.class文件。我的HTML文件的代码如下所示:

import java.awt.Graphics;
import javax.swing.JApplet;

public class HelloWorld extends JApplet {

    public void paint( Graphics g ) {
            super.paint( g );
            g.drawString( "Hello World!", 25, 25 );
    }

}
<html>

<head>
    <title>Hello World</title>
</head>

<body>
    <applet code="HelloWorld.class" height="300" width="300">
            Your browser is ignoring the applet tag.
    </applet>
</body>

</html>

你好,世界
您的浏览器正在忽略小程序标记。
如果我使用appletviewer运行小程序,它可以正常工作。但是,如果在浏览器中打开HTML文件,小程序空间会显示一个正方形,但小程序不会加载。(浏览器状态栏显示两条消息:小程序HelloWorld notloaded加载Java小程序失败…我使用Firefox 3.0.6、Safari 3.2.1和Opera 9.6.3尝试了小程序。他们都无法加载小程序

如果我尝试在/Developer/Examples/Java/applets中打开其中一个Java演示小程序的HTML,它在所有三种浏览器中都可以正常加载


在尝试将这个简单的小程序加载到浏览器中时,我是否缺少了一些东西?

我不是网络编程专家,但我认为小程序标记不是标准的。您必须使用具有正确classid的object标记来插入小程序(或几乎任何东西)。

您没有在小程序标记中指定codebase属性,因此我猜您的类可能找不到


尝试启用java控制台输出窗口。您可以在“扩展选项”选项卡(带有树和许多复选框的选项卡)下的“Java设置”(使用聚光灯)中执行此操作。也许你可以在那里看到更多的信息(比如ClassNotFoundException)。将设置设置为“启用/显示控制台”。然后,当您启动小程序时,它应该会显示。

您没有给aplet一个容器等来显示自己。这是一个:


不幸的是,苹果决定只在OSX上发布64位Java 6虚拟机。这意味着浏览器必须链接为64位应用程序。就我所知,目前没有一家这样做。因此,“简单”的解决方案是将Java 5用于您可以在Java首选项应用程序中配置的小程序。

谢谢您的回答。他们中的一些人为我指出了正确的方向,以找出问题的根源

我在Java首选项中打开了Java控制台。当我再次运行小程序时,我收到了以下输出:

Java插件1.5.0
使用JRE版本1.5.0_16 Java热点(TM)客户端虚拟机
适用于Mac OS X v1.0.1的MRJ插件
[启动Java小程序安全性@Fri Feb 06 23:47:20 CST 2009]
java.lang.UnsupportedClassVersionError:class文件中的版本号不正确
位于java.lang.ClassLoader.defineClass1(本机方法)
位于java.lang.ClassLoader.defineClass(ClassLoader.java:675)
位于java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
位于sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:177)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:316)
在sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:119)上
位于java.lang.ClassLoader.loadClass(ClassLoader.java:251)
位于sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:605)
位于sun.applet.AppletPanel.createApplet(AppletPanel.java:723)
位于sun.plugin.AppletViewer.createApplet(AppletViewer.java:1864)
位于jep.AppletFramePanel.createApplet(AppletFramePanel.java:189)
位于sun.applet.AppletPanel.runLoader(AppletPanel.java:652)
运行(AppletPanel.java:326)
运行(AppletFramePanel.java:176)
运行(Thread.java:613)

我在Mac上安装了JavaSE1.6,但我猜它没有安装1.6插件。此外,在创建.class文件时,它们似乎会被打上版本号的印记。我用1.6版编译了小程序,但试图用1.5插件运行它,因此导致了不受支持的ClassVersionError。我用1.5版重新编译了小程序,并再次尝试在所有三种浏览器中运行它。工作得很有魅力


有人知道1.6插件是否正在开发中吗?

Phil,dhiller关于代码库的评论触发了一些对我有用的东西。如果将“HelloWorld.class”文件与HTML文件放在同一文件夹中,然后将小程序标记设置为:
,然后用浏览器打开HTML文件,它应该可以工作。是我的。
codebase=“.”
告诉浏览器小程序代码与HTML文件位于同一文件夹中。小程序加载失败,因为浏览器显然不知道类代码位于何处。

请注意。这个帖子帮助我走上正轨,所以我想补充一条有用的提示。2010年8月9日

在Mac OS X 10.5.8 Leopard中,使用的Java版本由路径为Mac HD/Applications/Utilities/Java Preferences的应用程序控制

以前可能被命名为Java设置? 桌面应用程序使用的Java版本不必与浏览器中使用的版本相同。我在启动Portecle(从命令行)时遇到问题-它报告了一个“在.class文件中的错误版本号”

截至2010年8月,Mac OS X 10.5.8默认Java序列为:

  • J2SE 5.0…….32位
  • J2SE 5.0…….32位
  • Java SE 6…..64位
  • J2SE 5.0…….64位
  • J2SE 1.4.2…32位

显然,我试图加载的Java应用程序需要64位的Java SE 6,因为将Java SE 6拖到列表的顶部可以立即解决问题,然后可以从命令行或双击Portecle.jar启动Portecle。(万岁)

不要在HTML文件中的类名周围加引号。每次我输入引号时,小程序都不适用于我。:)

这是你的答案

<html>
   <applet code="packagename.HelloWorld.class" height="300" width="300">
</html>