4

I need help. I spent several hours trying to solve this problem but I can't. I code on Intellij Community Edition 2018.2 OS Windows 10, here is my java project structure.

enter image description here

my Main.java source:

package id.simko;

public class Main {

    public static void main(String[] args) {
        System.out.println("Hello World!");

        SqlServerConn sqlServerConn = new SqlServerConn();
        sqlServerConn.connectDbSqlServer();
        sqlServerConn.selectSqlServer();
    }
}

SqlServerConn.java:

package id.simko;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.sql.*;

class SqlServerConn {
    private Connection conn;

    void connectDbSqlServer() {

        String db_connect_string = "jdbc:sqlserver://localhost";
        String db_name = "db1";
        String db_userid = "sa";
        String db_password = "sa";

        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            conn = DriverManager.getConnection(db_connect_string+";databaseName="+db_name,
                    db_userid, db_password);
            System.out.println("connected to sql server");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    void selectSqlServer(){
        Statement statement;
        try {
            // ... skipped for clarity
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

my MANIFEST.MF:

Manifest-Version: 1.0
Main-Class: id.simko.Main

My pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>id.simko</groupId>
    <artifactId>replicator</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <version>7.0.0.jre8</version>
        </dependency>
    </dependencies>

</project>

I configured File -> Project Structure -> Artifacts, and added libs/java-json.jar.

enter image description here

Then lastly, on Intellij I clicked Build -> Build Artifacts -> replicator.jar -> Build. And my executable jar was created successfully.

But when I tried to run it, error happens. here is the screenshot.

enter image description here

please help.. I know this question already answered here: Java: NoClassDefFoundError: org/json/JSONException but the solution cannot solve my problem. maybe this is a bug from intellij?

====================================================================

LAST UPDATE FROM ME: I tried for hours until I give up. For now, the only possible way to create an executable application out of java project in Windows 10 is by NOT using Intellij CE 2018.2. I tried NetBeans 8.2 IDE and I successfully created executable bat with gradle plugin & cygwin.

I will leave this question unanswered, because I know someday someone will have a way, but for now I give up and tried a different IDE, at least for creating executable.

Dika
  • 2,213
  • 4
  • 33
  • 49
  • 2
    External Jars you have used, have not been attached to the jar you created. – Nipuna Priyamal Jan 02 '19 at 12:48
  • thank you for your help. How I can attach it? – Dika Jan 02 '19 at 12:49
  • 1
    add external jars as dependency in your pom file – Nipuna Priyamal Jan 02 '19 at 12:51
  • 1
    How are you creating the executable JAR? Are you using Maven to package the JAR? Is this dependency mentioned in pom.xml? – Gaurav Agarwal Jan 02 '19 at 12:58
  • please wait, @GauravAgarwal . I will update my question – Dika Jan 02 '19 at 12:59
  • @GauravAgarwal I updated my question, added explanation how I created the executable jar. I am new to intellij so I am not sure if I use maven 100%. the problematic java-json.jar, containing JSONException class is not mentioned in pom.xml. – Dika Jan 02 '19 at 13:08
  • 1
    @Dika Where did you get `json-jar`? You can unzip it and see if there exists `org.json.JSONException` – xingbin Jan 02 '19 at 13:14
  • @孙兴斌 I got it from here: http://www.java2s.com/Code/Jar/j/Downloadjavajsonjar.htm . I am sure java-json.jar is working, because I can build & run the project successfully. only when I compiled project into executable jar, error happens – Dika Jan 02 '19 at 13:16

5 Answers5

1

I was facing same issue. After spending hours, I found a solution to resolve this issue. What I need to do was:

Go to : File -> Project Structure -> Liabraries Add "org.springframework.boot:spring-boot-configuration-processor:2.3.4.RELEASE" in liabraries.

Now clean, build and run the project

Note: You can change the version of above package

0

Place the jar file under lib folder because while runtime it is not able to identify your jar I think so..

Santhosh
  • 23
  • 4
0

Open your replicator.jar (can use WinRAR) and see whether the class JSONException is available inside the jar. If not you need to include that inside your jar. For that you can use maven shade(https://maven.apache.org/plugins/maven-shade-plugin/) plugin or assemble plugin(http://maven.apache.org/plugins/maven-assembly-plugin/) to include all dependent classes into your executable jar.

This post would help you Including dependencies in a jar with Maven

Dushmantha
  • 2,911
  • 1
  • 14
  • 21
  • thank you for the info. please see my updated question. fyi the dependency jars is included but somehow not loaded into the main application. maybe it can work using tools like one-jar, but for now I dont have time for experiment it – Dika Jan 03 '19 at 04:39
0

In order to resolve the issue, here what I've done :

Remove Some IDE files/folders

I deleted the .idea folder and the .iml file containing the project name. Files and folder to delete

Reset Intellij Cash and restart Intellij

Reload Maven project

Reload maven project

That how I solve most of my Intellij IDEA Issues

0

My solution to this issue using Intellij was to create a library folder/directory "lib" and I included the JSON jar file.

File > Project Structure > Artifacts

enter image description here

Enzo
  • 21
  • 5