मैं अपने कोडिंग/विकास कौशल में सुधार करने के लिए काम कर रहा हूं और चींटी का उपयोग करने के लिए नया हूं। मेरा लक्ष्य कमांड लाइन से "हैलो वर्ल्ड" से अधिक जटिल प्रोग्राम को संकलित करने में सक्षम होना है। जिस प्रोग्राम को मैं संकलित करने और चलाने की कोशिश कर रहा हूं, उसे एपीआई में संग्रहीत पुस्तकालयों का उपयोग करता है, और मुझे लगता है कि मैंने अपनी build.xml फ़ाइल में सही पथ शामिल किया है, कोड संकलित और जार होगा (जब मैं चींटी संकलन और चींटी जार कमांड का उपयोग करता हूं), लेकिन जब मैं इसे चलाता हूं तो मुझे रन टाइम त्रुटि मिलती है।चींटी के साथ जावा संकलित करना - त्रुटि प्राप्त करना जारी रखें जेएनआई त्रुटि हुई है
यहाँ मेरी चींटी निर्माण फ़ाइल है:
<project name="Main" basedir="." default="main">
<property name="src.dir" value="src"/>
<property name="build.dir" value="build"/>
<property name="classes.dir" value="${build.dir}/classes"/>
<property name="jar.dir" value="lib"/>
<property name="main-class" value="myProject.Main"/>
<target name="clean">
<delete dir="${classes.dir}"/>
</target>
<target name="compile" depends="clean">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src.dir}" destdir="${classes.dir}" includeantruntime="false">
<classpath>
<path location="${jar.dir}/dropbox-core-sdk-1.7.7.jar"/>
<path location="${jar.dir}/jackson-core-2.2.4.jar"/>
</classpath>
</javac>
</target>
<target name="jar" depends="compile">
<mkdir dir="${jar.dir}"/>
<jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
<manifest>
<attribute name="Main-Class" value="${main-class}"/>
</manifest>
</jar>
</target>
<target name="run" depends="jar">
<java jar="${jar.dir}/${ant.project.name}.jar" fork="true"/>
</target>
<target name="clean-build" depends="clean,jar"/>
<target name="main" depends="clean,run"/>
इस निम्नलिखित त्रुटियाँ पैदा करता है:
Buildfile: /Users/Phil/Documents/Java workspace/DropBoxProgram/build.xml
clean:
[delete] Deleting directory /Users/Phil/Documents/Java workspace/DropBoxProgram/build/classes
compile:
[mkdir] Created dir: /Users/Phil/Documents/Java workspace/DropBoxProgram/build/classes
[javac] Compiling 7 source files to /Users/Phil/Documents/Java workspace/DropBoxProgram/build/classes
jar:
[jar] Building jar: /Users/Phil/Documents/Java workspace/DropBoxProgram/lib/Main.jar
run:
[java] Error: A JNI error has occurred, please check your installation and try again
[java] Exception in thread "main" java.lang.NoClassDefFoundError: com/dropbox/core/DbxException
[java] at java.lang.Class.getDeclaredMethods0(Native Method)
[java] at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
[java] at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
[java] at java.lang.Class.getMethod0(Class.java:3018)
[java] at java.lang.Class.getMethod(Class.java:1784)
[java] at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
[java] at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
[java] Caused by: java.lang.ClassNotFoundException: com.dropbox.core.DbxException
[java] at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
[java] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
[java] ... 7 more
[java] Java Result: 1
BUILD SUCCESSFUL
Total time: 1 second
मैं वास्तव में किसी भी मदद की सराहना करते हैं!
हाहा मैं एक छोटा सा बेवकूफ़ हूँ। यह मेरी समस्या ठीक से तय किया। मेरी समस्या वास्तव में थी कि मैं सी: \ apache-ant के बजाय सी: \ apache-tomcat पर अपने चींटी होम को इंगित करता था। – thonnor
धन्यवाद! यह मुझे पागल कर दिया! आपने मेरा दिन बचाया (या बल्कि: मेरी रात)! – mmo