Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
Max MSP的Java类-OutOfMemoryError_Java_String_Out Of Memory_Javax.imageio_Max Msp Jitter - Fatal编程技术网

Max MSP的Java类-OutOfMemoryError

Max MSP的Java类-OutOfMemoryError,java,string,out-of-memory,javax.imageio,max-msp-jitter,Java,String,Out Of Memory,Javax.imageio,Max Msp Jitter,我试图通过mxj(max和java之间的桥梁)在我的max补丁中使用以下java。它意味着从IP地址下载jpeg流并渲染到矩阵。然而,我不断收到一长串错误,通常以OutOfMemoryError结束,在这一点上,我的整个笔记本电脑都会冻结。问题似乎是创建的字符串太多,没有及时删除。我和Max一起工作,但很少有java经验。非常感谢您的任何想法 import com.cycling74.max.*; import com.cycling74.jitter.*; import java.awt.im

我试图通过mxj(max和java之间的桥梁)在我的max补丁中使用以下java。它意味着从IP地址下载jpeg流并渲染到矩阵。然而,我不断收到一长串错误,通常以OutOfMemoryError结束,在这一点上,我的整个笔记本电脑都会冻结。问题似乎是创建的字符串太多,没有及时删除。我和Max一起工作,但很少有java经验。非常感谢您的任何想法

import com.cycling74.max.*;
import com.cycling74.jitter.*;
import java.awt.image.*;
import javax.imageio.*;
import java.net.*;

// created by bbn on Feb 18, 2005
/**
 * downloads an image from the web and outputs it as a matrix
 *
 * @author bbn
 */
public class v001imagedownloader extends MaxObject 
{

String imgURL="http://www.example.com";

JitterMatrix matrixFromUrlImage = new JitterMatrix(4, "char", 640,480);

public void bang()
{
    outlet(0, "jit_matrix", matrixFromUrlImage.getName());
}


public void downloadImage()
{
        getImage(imgURL);
}

public void getImage(final String someUrl)
{       
    (new Thread() {

        //public String url;


        public void run() {
            try {
                URL u = new URL(someUrl);
                BufferedImage bi = ImageIO.read(u);
                JitterMatrix tempMatrix = new JitterMatrix(bi);

                 matrixFromUrlImage = new JitterMatrix(bi);                 

                // copy the temp matrix to the our matrix


                outlet(0, "jit_matrix", matrixFromUrlImage.getName());
            } catch (Exception e) {
                e.printStackTrace();
            }
        } 
    }).start();
}

public void setURL(String Url)
{
    imgURL=Url;
}

public void notifyDeleted()
{
    //getImage.release();
    matrixFromUrlImage.freePeer();
}
}

在v001imagedownloader$1.run(v001imagedownloader.java:41)
原因:java.net.ConnectException:操作超时
位于java.net.PlainSocketImpl.socketConnect(本机方法)
位于java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:382)
位于java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:241)
位于java.net.PlainSocketImpl.connect(PlainSocketImpl.java:228)
位于java.net.socksocketimpl.connect(socksocketimpl.java:431)
位于java.net.Socket.connect(Socket.java:527)
位于java.net.Socket.connect(Socket.java:476)
位于sun.net.NetworkClient.doConnect(NetworkClient.java:163)
位于sun.net.www.http.HttpClient.openServer(HttpClient.java:424)
位于sun.net.www.http.HttpClient.openServer(HttpClient.java:538)
http.HttpClient.(HttpClient.java:214)
http.HttpClient.New(HttpClient.java:300)
http.HttpClient.New(HttpClient.java:319)
位于sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:987)
位于sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:923)
位于sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:841)
位于sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1195)
位于java.net.URL.openStream(URL.java:1010)
在javax.imageio.imageio.read(imageio.java:1367)
... 还有一个
javax.imageio.IIOException:无法从URL获取输入流!
在javax.imageio.imageio.read(imageio.java:1369)
在v001imagedownloader$1.run(v001imagedownloader.java:41)
原因:java.net.ConnectException:操作超时
位于java.net.PlainSocketImpl.socketConnect(本机方法)
位于java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:382)
位于java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:241)
位于java.net.PlainSocketImpl.connect(PlainSocketImpl.java:228)
位于java.net.socksocketimpl.connect(socksocketimpl.java:431)
位于java.net.Socket.connect(Socket.java:527)
位于java.net.Socket.connect(Socket.java:476)
位于sun.net.NetworkClient.doConnect(NetworkClient.java:163)
位于sun.net.www.http.HttpClient.openServer(HttpClient.java:424)
位于sun.net.www.http.HttpClient.openServer(HttpClient.java:538)
http.HttpClient.(HttpClient.java:214)
http.HttpClient.New(HttpClient.java:300)
http.HttpClient.New(HttpClient.java:319)
位于sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:987)
位于sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:923)
位于sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:841)
位于sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1195)
位于java.net.URL.openStream(URL.java:1010)
在javax.imageio.imageio.read(imageio.java:1367)
... 还有一个
javax.imageio.IIOException:无法从URL获取输入流!
在javax.imageio.imageio.read(imageio.java:1369)
在v001imagedownloader$1.run(v001imagedownloader.java:41)
原因:java.net.ConnectException:操作超时
位于java.net.PlainSocketImpl.socketConnect(本机方法)
位于java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:382)
位于java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:241)
位于java.net.PlainSocketImpl.connect(PlainSocketImpl.java:228)
位于java.net.socksocketimpl.connect(socksocketimpl.java:431)
位于java.net.Socket.connect(Socket.java:527)
位于java.net.Socket.connect(Socket.java:476)
位于sun.net.NetworkClient.doConnect(NetworkClient.java:163)
位于sun.net.www.http.HttpClient.openServer(HttpClient.java:424)
位于sun.net.www.http.HttpClient.openServer(HttpClient.java:538)
http.HttpClient.(HttpClient.java:214)
http.HttpClient.New(HttpClient.java:300)
http.HttpClient.New(HttpClient.java:319)
位于sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:987)
位于sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:923)
位于sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:841)
位于sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1195)
位于java.net.URL.openStream(URL.java:1010)
在javax.imageio.imageio.read(imageio.java:1367)

将整个堆栈跟踪放在catch块中。您是否也可以在运行时将要连接的URL输出到catch块中?并确保可以从运行程序的环境访问URL?错误消息表示低级别套接字超时。也许您对服务器的攻击速度快于它处理请求的速度,最终导致客户端超时?如果是这样,您可能需要引入一些节流机制。PS:我不知道Max,只知道Java,对不起。:-)
at v001imagedownloader$1.run(v001imagedownloader.java:41)
Caused by: java.net.ConnectException: Operation timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:382)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:241)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:228)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:431)
at java.net.Socket.connect(Socket.java:527)
at java.net.Socket.connect(Socket.java:476)
at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:424)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:538)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:214)
at sun.net.www.http.HttpClient.New(HttpClient.java:300)
at sun.net.www.http.HttpClient.New(HttpClient.java:319)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:987)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:923)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:841)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1195)
at java.net.URL.openStream(URL.java:1010)
at javax.imageio.ImageIO.read(ImageIO.java:1367)
... 1 more
javax.imageio.IIOException: Can't get input stream from URL!
at javax.imageio.ImageIO.read(ImageIO.java:1369)
at v001imagedownloader$1.run(v001imagedownloader.java:41)
Caused by: java.net.ConnectException: Operation timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:382)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:241)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:228)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:431)
at java.net.Socket.connect(Socket.java:527)
at java.net.Socket.connect(Socket.java:476)
at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:424)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:538)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:214)
at sun.net.www.http.HttpClient.New(HttpClient.java:300)
at sun.net.www.http.HttpClient.New(HttpClient.java:319)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:987)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:923)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:841)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1195)
at java.net.URL.openStream(URL.java:1010)
at javax.imageio.ImageIO.read(ImageIO.java:1367)
... 1 more
javax.imageio.IIOException: Can't get input stream from URL!
at javax.imageio.ImageIO.read(ImageIO.java:1369)
at v001imagedownloader$1.run(v001imagedownloader.java:41)
Caused by: java.net.ConnectException: Operation timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:382)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:241)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:228)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:431)
at java.net.Socket.connect(Socket.java:527)
at java.net.Socket.connect(Socket.java:476)
at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:424)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:538)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:214)
at sun.net.www.http.HttpClient.New(HttpClient.java:300)
at sun.net.www.http.HttpClient.New(HttpClient.java:319)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:987)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:923)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:841)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1195)
at java.net.URL.openStream(URL.java:1010)
at javax.imageio.ImageIO.read(ImageIO.java:1367)