Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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
Java 无法通过可执行jar文件调用API_Java_Eclipse_Executable Jar - Fatal编程技术网

Java 无法通过可执行jar文件调用API

Java 无法通过可执行jar文件调用API,java,eclipse,executable-jar,Java,Eclipse,Executable Jar,我已经编写了一个java方法,它调用日语字典的API->解析JSON响应->将第一个节点(字符串)返回给调用者,作为英语单词的适当翻译。 当从EclipseIDE执行该程序时,它工作得非常好。 然而,当我运行它的可执行jar(使用Eclipse的导出特性创建)时 我没有收到API的任何响应。 我无法理解这种行为的原因,如果有人在这方面指导我,我会很有帮助 当我执行整个程序时,我总是在控制台上打印“GetRequestNotWorked” java-jar JtoETranslate.jar Ja

我已经编写了一个java方法,它调用日语字典的API->解析JSON响应->将第一个节点(字符串)返回给调用者,作为英语单词的适当翻译。 当从EclipseIDE执行该程序时,它工作得非常好。 然而,当我运行它的可执行jar(使用Eclipse的导出特性创建)时 我没有收到API的任何响应。 我无法理解这种行为的原因,如果有人在这方面指导我,我会很有帮助

当我执行整个程序时,我总是在控制台上打印“GetRequestNotWorked”

java-jar JtoETranslate.jar

Java方法:

public static String sendGET(String param) throws IOException
     {
            BufferedWriter writer = null;
        Properties systemSettings =  System.getProperties();
            systemSettings.put("proxySet", "true");
             systemSettings.put("http.proxyHost","172.29.44.61");
             systemSettings.put("http.proxyPort", "8080");
            URL obj = new URL(GET_URL+param);
            HttpURLConnection con = (HttpURLConnection)obj.openConnection();
            con.setRequestMethod("GET");

            int responseCode = con.getResponseCode();

            if (responseCode == HttpURLConnection.HTTP_OK)
           {
                BufferedReader in = new BufferedReader(new InputStreamReader(
                con.getInputStream()));
        String inputLine;
        StringBuffer response = new StringBuffer();

        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }

        in.close();

        // print result

        try
        {
            writer = new BufferedWriter( new FileWriter("./docs/response.json"));
            writer.write(response.toString());

        }
        catch ( IOException e)
        {
        }
        finally
        {
            try
            {
                if ( writer != null)
                writer.close( );
               return parseJSON("./docs/response.json");
            }
            catch ( IOException e)
            {
            }
        }
        System.out.println("Got response");
        } else {
        System.out.println("GET request not worked");
    }return null;
        }
编辑

正如下面的一条评论中所建议的,我添加了一条调试语句,以查看形成的请求是什么,下面是对API的请求


有谁能帮助我了解如何让Jar理解UTF-8编码。

您是否尝试在admin modus中运行Jar?如果您打算自己解决此问题,我建议您尝试以下方式进行远程调试。或者你能把你写的所有代码都发出去吗?@Casper是的,我发了。但同样的问题依然存在,可能是您需要创建清单并定义程序所需的特权。例如互联网连接。看看这个url:您应该添加一些调试代码。如何在命令行上设置参数?服务器返回的实际HTTP响应代码是什么?是否引发异常?。。。