图片:
命令提示符显示版本
图片错误
import java.applet.Applet;
import java.awt.*;
public class Hello extends Applet {
// Java applet to draw "Hello World"
public void paint (Graphics page) {
page.drawString ("Hello World!", 50, 50);
}
}
Run Code Online (Sandbox Code Playgroud)
<HTML>
<HEAD>
<TITLE>HelloWorld Applet</TITLE>
</HEAD>
<BODY>
<APPLET CODE="Hello.class" WIDTH=300 HEIGHT=150>
</APPLET>
</BODY>
</HTML>
Run Code Online (Sandbox Code Playgroud)
Hello : Unsupported major.minor version 52.0
Run Code Online (Sandbox Code Playgroud)
问题可能是什么?
我正在试图弄清楚Java applet的类文件在做什么.用记事本或Textpad打开它只会显示出一堆狼吞虎咽的东西.
有没有什么方法可以将它重新组合成一种有点可读的格式,这样我就可以试着找出它在做什么?
我无法在HTML中将我的Java应用程序作为Web applet启动(我使用的是HTML 4.01,我知道它在html5中不起作用).它返回的错误消息是:
java:不支持的major.minor版本52.0
我已经尝试降级我的Java JRE/JDK/SDK,但我仍然得到相同的错误消息.我现在使用的当前版本的java是1.8.0_05.
从Java 7u45开始,如果网页尝试通过javascript与其进行交互,并且该页面未在清单的Caller-Allowable-Codebase属性中列出,则applet将显示警告消息(即使使用受信任的证书进行签名).
有关此更改的发行说明:http://www.oracle.com/technetwork/java/javase/7u45-relnotes-2016950.html
有关此错误的Oracle博客文章:https://blogs.oracle.com/java-platform-group/entry/7u45_caller_allowable_codebase_and
属性描述:http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#caller_allowable
我只尝试了一个通配符(*),但我仍然收到警告.
除了列出它可能运行的所有代码库之外,还有其他方法吗?
这对我来说是个问题的原因是这个小程序在许多不同的机器和网络上运行,但总是在不同位置的内部网上运行.这个小程序还需要与javascript通信,因为它与本地USB秤对话并显示结果并与页面交互.
我正在尝试从我的浏览器(Chrome)运行这个用Java编写的简单HelloWorld代码:
public class HelloWorld extends JApplet {
public void init() {
try {
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
JLabel lbl = new JLabel("Hello World");
add(lbl);
}
});
}
catch (Exception e) {
System.err.println("createGUI didn't complete successfully");
}
}
Run Code Online (Sandbox Code Playgroud)
我用NetBeans编译它,然后创建了一个WebApplication项目.运行applet 的HTML代码是:
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p><applet code="HelloWorld" archive="applet_HelloWorld.jar" width="590" height="530"></applet></p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果从NetBeans运行applet,它可以工作.但是当我通过双击运行HTML代码时,会从浏览器弹出以下消息:
您的安全设置已阻止本地应用程序运行.
我尝试使用Internet Explorer和Firefox,但没有尝试.
在最后一次更新Java之后,此消息开始出现.问题出在哪儿?
目前,我所拥有的唯一信息是浏览器状态栏中的单行错误消息.
你知道如何获得堆栈跟踪吗?
如何处理多个客户端连接到一台服务器?我有这个LogServer.java
import javax.net.ssl.*;
import javax.net.*;
import java.io.*;
import java.net.*;
public class LogServer {
private static final int PORT_NUM = 5000;
public static void main(String args[]) {
ServerSocketFactory serverSocketFactory =
ServerSocketFactory.getDefault();
ServerSocket serverSocket = null;
try {
serverSocket =
serverSocketFactory.createServerSocket(PORT_NUM);
} catch (IOException ignored) {
System.err.println("Unable to create server");
System.exit(-1);
}
System.out.printf("LogServer running on port: %s%n", PORT_NUM);
while (true) {
Socket socket = null;
try {
socket = serverSocket.accept();
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(
new InputStreamReader(is, "US-ASCII")); …
Run Code Online (Sandbox Code Playgroud) 我无法理解info.plist
我的应用程序中文件中的特定要求.我应该更改它,还是默认设置通常是"正确"的选项?
具体而言,条目:应用程序需要IPHONE环境
如果设置为是,这是否意味着只有iPhone能够运行我的应用程序,这意味着iPod Touch或iPad将无法运行该应用程序?
当java年轻时,人们对编写applet感到兴奋.他们很酷很受欢迎,有一段时间了.现在,我再也见不到他们了.相反,我们有flash,javascript和许多其他网络应用程序构建技术.
为什么站点不再使用java applet?
我也很好奇:从历史上看,为什么你认为这发生了?为了让Java applet保持活力,可以做些什么呢?
我们有一个Web应用程序,它使用Java applet来操作本地磁盘上的文件.我们开发它已经有一段时间了,我们已经知道所有类型的applet可能与现代操作系统和浏览器以及最新的Java版本和新的安全限制有关.
昨天,Apple推出了新的Mac OS 10.9 Mavericks,推出了新的Safari浏览器(7.0).我在Safari 7/Mac OS X 10.9下测试了我们的Web应用程序,发现Safari 7(可能是?)阻止从Java applet访问本地文件.
尽管applet(使用有效的Thawte证书签名,并且满足Java 7u45特定的所有安全性要求)以无限制模式运行,并且可以完全访问本地文件系统(Java安全提示符说),但在尝试访问本地文件时,它会捕获fileNotFoundException :
java.io.FileNotFoundException: /Users/yury/Pictures/Paris 2012/L1050258.jpg (Operation not permitted)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:146)
at com.trackntag.a.v.a(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
此外,当从applet打开Java文件打开对话框时,它不显示任何文件,文件夹选择器中的文件夹没有任何图标(通常他们应该有它们).当您遍历到根文件夹时,您可以看到顶级文件夹(bin,cores,dev,home等),但您无法浏览它们.
applet可以在同一台机器上使用最新的Firefox 24 for Mac访问本地文件(Java 7u45,Mac OS X 10.9).与Safari 6和Mac OS X 10.8.5相同,更不用说各种配置的Linux和Windows机器:访问本地文件没有问题.
综上所述,我必须得出结论,我们遇到了Safari 7特有的问题.
你对这个问题有什么看法吗?任何想法都非常感谢.
干杯,尤里
编辑(答案):在Safari 7中有一个新的安全设置:安全/不安全模式(我认为它只适用于Java插件).您可以允许Java插件在不安全模式下为单个网站或所有站点工作.在不安全模式下,applet将具有对本地文件系统的无限制访问权限.
看来这个安全设置在Java自己的安全设置(受限制/不受限制的访问)之上工作.
此设置可通过Safari首选项/安全选项卡/ Internet插件获得:管理网站设置(然后选择Java插件).
所以,一旦我已经回答了我自己的原始问题,我宁愿将其改为:是否可以设置不安全模式或覆盖特定网站/ URL的安全模式而无需要求用户设置此安全首选项?也许Apple开发者证书之类的东西会有帮助吗
再次感谢!