Intellij Idea - Java程序在构建jar后无法正常工作

时间:2015-08-21 08:35:53

标签: java intellij-idea jar

我对java有一个奇怪的问题 - 我在Intellij Idea中编程,我使用这个小代码对网站进行基本授权

        String authString = name + ":" + password;
        byte[] binaryData = authString.getBytes();
        String authStringEnc = new String(Base64.encodeBase64(binaryData));
        URL url = new URL(webPage);
        URLConnection urlConnection = url.openConnection();
        urlConnection.setRequestProperty("Authorization", "Basic " + authStringEnc);
        InputStream is_auth = urlConnection.getInputStream();
        InputStreamReader isr = new InputStreamReader(is_auth);

这段代码工作了几个星期,但我继续编写我的程序。然后昨天我看到 - 当我在Intellij中单击运行时程序有效,但是当我启动.jar文件时,这行不能完成:

        String authStringEnc = new String(Base64.encodeBase64(binaryData));

我不知道为什么,但程序在执行此行时会停止。但是当我在Intellij中单击运行或调试时,一切正常。

顺便说一下。我正在将此库用于encodeBase64:

        import org.apache.commons.codec.binary.Base64;

如果您不知道为什么它不起作用,也许您可​​以与我分享想要对网站进行基本授权。提前谢谢。

3 个答案:

答案 0 :(得分:2)

您需要将Apache Commons Codec jar添加到classpath when you run the jar file。您应该确保在IntelliJ中添加的任何其他jar文件/库也在类路径中。

答案 1 :(得分:0)

您应该使用日志记录来研究堆栈跟踪。可能你有一些ClassNotFound异常或同样明显的东西。

答案 2 :(得分:0)

答案是: 我只需要刷新jar工件。我删除了旧的工件并再次创建它,之后一切运行良好。