奇怪了,这段代码会报错??

guoyuzhang 2003-12-12 04:03:07
import java.applet.*;
import java.net.*;
import java.awt.*;

public class GetImage extends Applet{
Image image;
public void init() {
String url = "http://www.csunion.com/you.jpg";
try {
image = getImage(new URL(url));
} catch(Exception e){}
}

public void paint(Graphics g) {
g.drawImage(image, 0, 0,this);
}
}

http://www.csunion.com/you.jpg 这个图片肯定是有的,执行
appletviewer GetImage.html 显示好多异常??
...全文
26 13 打赏 收藏 举报
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ACCPZY 2003-12-17
看来问题已经解决,没戏了哦。。。。睡觉去,大家拜拜!
  • 打赏
  • 举报
回复
foryouever 2003-12-16
可以结贴了吧~~~~
  • 打赏
  • 举报
回复
foryouever 2003-12-15
另外,上面说的那个policy文件不一定放在上述目录中,你可以随便放,丹药保证参数里的路径能找到它。
  • 打赏
  • 举报
回复
foryouever 2003-12-15
办法倒是有一个——改变(追加)appletviewer的安全策略文件(赋予相应的权限),不过20分可不够哦~~~
具体如下:
1、用记事本或者jdk自带的policytool.exe工具生成一个新的my.polocy文件,放在c:\j2sdk1.4.2_01\jre\lib\security下(路径根据你的情况变化),内容为(引号中的路径根据你的情况做相应调整):
grant codeBase "file:c:/myproj/*" {
permission java.net.SocketPermission "www.csunion.com:80", "resolve";
};
也就是赋予你的GetImage.class文件所在目录访问www.csunion.com:80端口的权限。
2、运行appletviewer时使用如下参数
appletviewer -J-Djava.security.policy=c:\j2sdk1.4.2_01\jre\lib\security\my.policy Noname2.html

  • 打赏
  • 举报
回复
guoyuzhang 2003-12-12
谢谢光速兔子的热心解答!
但通过URL怎么不行呢?难道想存取网站的图片必须加上用户名和密码什么的?
  • 打赏
  • 举报
回复
foryouever 2003-12-12
把you.jpg放在与applet同一目录下,在本地使用appletviewer测试通过:
import java.applet.*;
import java.net.*;
import java.awt.*;

public class GetImage extends Applet{
Image image = null;
public void init() {
String url = "file:you.jpg";
try {
image = getImage(new URL(url));
System.out.println("sdfsf" + image);
} catch(Exception e){ e.printStackTrace();System.exit(0);}
}

public void paint(Graphics g) {
g.drawImage(image, 0, 0,this);
}
}
  • 打赏
  • 举报
回复
guoyuzhang 2003-12-12
java.security.AccessControlException: access denied!

看来是安全方面的原因,请问怎么解决呀!
偶刚接触JAVA网络编程,就碰上了这个问题!
这段代码有哪位运行通过了吗?
  • 打赏
  • 举报
回复
foryouever 2003-12-12
applet的安全性要求不能建立另一个网络连接导致:java.security.AccessControlException: access denied (java.net.SocketPermission www.csunion.com resolve)

建议写程序时不要省掉catch后面的语句,不方便查错,可以加上:
catch(Exception e){ e.printStackTrace();}
  • 打赏
  • 举报
回复
guoyuzhang 2003-12-12
问题还没有解决,请继续!
  • 打赏
  • 举报
回复
foryouever 2003-12-12
试ing
  • 打赏
  • 举报
回复
guoyuzhang 2003-12-12
好多错误信息呀,但我看到网络的灯闪了,证明肯定去取图片了,各位可以把程序放到自己机器上试试吗
  • 打赏
  • 举报
回复
sgdb 2003-12-12
出错信息呢?
  • 打赏
  • 举报
回复
guoyuzhang 2003-12-12
怎么没有人回答?太简单了?
  • 打赏
  • 举报
回复
相关推荐
发帖
Java SE
加入

6.2w+

社区成员

Java 2 Standard Edition
社区管理员
  • Java SE
申请成为版主
帖子事件
创建了帖子
2003-12-12 04:03
社区公告
暂无公告