【问题标题】:Why am I getting a Port error after running this? [closed]为什么运行后出现端口错误? [关闭]
【发布时间】:2012-04-17 01:08:55
【问题描述】:

我在文本板中创建了这个,因为我们的讲师不希望我们使用 IDE。我正在尝试输入一个网站并在JEditorPane 中查看它。

    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    import java.net.*;
    import javax.swing.*;
    import java.util.*;

    public class ViewRemoteFile extends JApplet
    {
        private JButton jbtView = new JButton("View");
        private JTextField jtfURL = new JTextField(12);
        private JEditorPane jtaFile = new JEditorPane();
        private JLabel jlblStatus = new JLabel();

        public void init()
        {
            JPanel p1 = new JPanel();
            p1.add(new JLabel("URL"), BorderLayout.WEST);
            p1.add(jtfURL, BorderLayout.CENTER);
            p1.add(jbtView, BorderLayout.EAST);
            add(new JScrollPane(jtaFile), BorderLayout.CENTER);
            add(p1, BorderLayout.NORTH);
            add(jlblStatus, BorderLayout.SOUTH);

            jbtView.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    showFile();
                }
            });
        }

        private void showFile()
        {
            //Scanner input = null;
            //URL url = null;

            try
            {
                jtaFile.setPage(new URL(jtfURL.getText().trim()));
                jlblStatus.setText("File loaded successfully");
            }
            catch(MalformedURLException ex)
            {
                jlblStatus.setText("URL " + jtfURL.getText().trim() + " not found.");
            }
            catch(IOException ex)
            {
                jlblStatus.setText(ex.getMessage());
            }
            /*finally
            {
                if(input != null)
                    input.close();
            }*/
        }
    }

当我运行此代码时,它不会显示站点,它会崩溃并在我的控制台中填满大量错误。

http://www.yahoo.com 我明白了:

        at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.security.AccessControlException: access denied ("java.net.Socket
Permission" "www.yahoo.com:80" "connect,resolve")
        at java.security.AccessControlContext.checkPermission(AccessControlConte
xt.java:366)
        at java.security.AccessController.checkPermission(AccessController.java:
555)
        at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
        at java.lang.SecurityManager.checkConnect(SecurityManager.java:1051)
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:466)
        at sun.net.www.http.HttpClient.<init>(HttpClient.java:213)
        at sun.net.www.http.HttpClient.New(HttpClient.java:300)
        at sun.net.www.http.HttpClient.New(HttpClient.java:316)
        at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLC
onnection.java:992)
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConne
ction.java:928)
        at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection
.java:846)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLCon
nection.java:1296)
        at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:468
)
        ... 40 more

【问题讨论】:

  • 你遇到了什么错误?
  • 对于yahoo.com,我在控制台窗口中收到以下错误:
  • 添加到我的代码底部
  • 知道错误是什么原因吗??
  • 您的SecurityManager 似乎拒绝访问以连接到 yahoo.com。我以前从来没有遇到过这样的事情,我真的不知道。

标签: java swing japplet jeditorpane


【解决方案1】:

它是一个小程序,需要签名才能访问套接字。未签名的小程序只允许连接到它来自的主机。查看Signed AppletsWhat Applets Can and Cannot Do

EDIT:显示 HTML 文档:

我不确定您的目标是什么,但如果您想显示 HTML 页面,您可能会发现 showDocument 很有用。这是example

【讨论】:

  • 谢谢,我现在正在调查。
  • @user512915 也许showDocument 可以帮助你,看看我的编辑。
猜你喜欢
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 2014-08-30
  • 2013-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多