|
|
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
Как сделать JAR в IntellJIDEA? Говорят с помощью Ant,но я непонял как делать build.xml ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2004, 15:44 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
значит надо читать "что такое ant", а потом делать. Копай в сторону дефолтного антовского таргета 'jar'. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2004, 16:00 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
например я тоже дальше того, что 1) создал УСПЕШНО (без ошибок) build.xml 2) запустил этот файл во встроенном Ant и получил КУКИШ ошибок не было - но и jar файла я так и не нашел нигде ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2004, 20:51 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
Покажи содержимое твоего build.xml, можно только части, касаемой задачи по созданию jar'а. И что подразумевается под "создал УСПЕШНО (без ошибок) build.xml" и "запустил"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2004, 12:05 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
типа вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2004, 12:17 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
патч не Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2004, 12:18 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
патч не Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2004, 12:19 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
Успешно - это она радостно сообщила что *.xml создан успешно <?xml version="1.0" encoding="ISO-8859-1"?> <project name="khr" default="all"> <!-- Uncomment the following property if no tests compilation is needed --> <!-- <property name="skip.tests" value="true"/> --> <!-- Compiler options --> <property name="compiler.debug" value="on"/> <property name="compiler.generate.no.warnings" value="off"/> <property name="compiler.args" value=""/> <property name="compiler.max.memory" value="128m"/> <patternset id="compiler.excluded"/> <patternset id="compiler.resources"> <include name="**/?*.properties"/> <include name="**/?*.xml"/> <include name="**/?*.gif"/> <include name="**/?*.png"/> <include name="**/?*.jpeg"/> <include name="**/?*.jpg"/> <include name="**/?*.html"/> <include name="**/?*.dtd"/> <include name="**/?*.tld"/> </patternset> <!-- JDK definitions --> <property name="jdk.home.java_version_1.4.2_05" value="F:/j2sdk1.4.2_05"/> <path id="jdk.classpath.java_version_1.4.2_05"> <fileset dir="${jdk.home.java_version_1.4.2_05}"> <include name="jre/lib/charsets.jar"/> <include name="jre/lib/jce.jar"/> <include name="jre/lib/jsse.jar"/> <include name="jre/lib/plugin.jar"/> <include name="jre/lib/rt.jar"/> <include name="jre/lib/sunrsasign.jar"/> <include name="jre/lib/ext/dnsns.jar"/> <include name="jre/lib/ext/ldapsec.jar"/> <include name="jre/lib/ext/localedata.jar"/> <include name="jre/lib/ext/sunjce_provider.jar"/> </fileset> </path> <property name="project.jdk.home" value="${jdk.home.java_version_1.4.2_05}"/> <property name="project.jdk.classpath" value="jdk.classpath.java_version_1.4.2_05"/> <!-- Project Libraries --> <!-- Global Libraries --> <import file="${basedir}/module_khr.xml"/> <target name="init" description="Build initialization"> <!-- Perform any build initialization in this target --> </target> <target name="clean" depends="clean.module.khr" description="cleanup all"/> <target name="all" depends="init, clean, compile.module.khr" description="build all"/> </project> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2004, 12:25 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
см. начиная с тынц Удачи :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2004, 12:30 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
в той части сделал как тут предлагали <target name="init"> <property name="app.name" value="myapp"/> <property name="bld.dir" value="${basedir}/build" /> <property name="lib.dir" value="${basedir}/lib" /> </target> <target name="make-jar" depends="init"> <jar jarfile="${lib.dir}/${app.name}.jar"> <fileset dir="${bld.dir}" includes="**" /> </jar> </target> а джара все рано нет нигде ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2004, 12:33 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
Alexander2в той части сделал как тут предлагали <target name="init"> <property name="app.name" value="myapp"/> <property name="bld.dir" value="${basedir}/build" /> <property name="lib.dir" value="${basedir}/lib" /> </target> <target name="make-jar" depends="init"> <jar jarfile="${lib.dir}/${app.name}.jar"> <fileset dir="${bld.dir}" includes="**" /> </jar> </target> а джара все рано нет нигде полное содержание build.xml в студию!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2004, 12:35 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
<?xml version="1.0" encoding="ISO-8859-1"?> <project name="khr" default="all"> <property name="compiler.debug" value="on"/> <property name="compiler.generate.no.warnings" value="off"/> <property name="compiler.args" value=""/> <property name="compiler.max.memory" value="128m"/> <patternset id="compiler.excluded"/> <patternset id="compiler.resources"> <include name="**/?*.properties"/> <include name="**/?*.xml"/> <include name="**/?*.gif"/> <include name="**/?*.png"/> <include name="**/?*.jpeg"/> <include name="**/?*.jpg"/> <include name="**/?*.html"/> <include name="**/?*.dtd"/> <include name="**/?*.tld"/> </patternset> <property name="jdk.home.java_version_1.4.2_05" value="F:/j2sdk1.4.2_05"/> <path id="jdk.classpath.java_version_1.4.2_05"> <fileset dir="${jdk.home.java_version_1.4.2_05}"> <include name="jre/lib/charsets.jar"/> <include name="jre/lib/jce.jar"/> <include name="jre/lib/jsse.jar"/> <include name="jre/lib/plugin.jar"/> <include name="jre/lib/rt.jar"/> <include name="jre/lib/sunrsasign.jar"/> <include name="jre/lib/ext/dnsns.jar"/> <include name="jre/lib/ext/ldapsec.jar"/> <include name="jre/lib/ext/localedata.jar"/> <include name="jre/lib/ext/sunjce_provider.jar"/> </fileset> </path> <property name="project.jdk.home" value="${jdk.home.java_version_1.4.2_05}"/> <property name="project.jdk.classpath" value="jdk.classpath.java_version_1.4.2_05"/> <import file="${basedir}/module_khr.xml"/> <target name="init"> <property name="app.name" value="myapp"/> <property name="bld.dir" value="${basedir}/build" /> <property name="lib.dir" value="${basedir}/lib" /> </target> <target name="make-jar" depends="init"> <jar jarfile="${lib.dir}/${app.name}.jar"> <fileset dir="${bld.dir}" includes="**" /> </jar> </target> <target name="clean" depends="clean.module.khr" description="cleanup all"/> <target name="all" depends="init, clean, compile.module.khr" description="build all"/> </project> а чебурашки все равно нет :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2004, 12:43 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
<jar jarfile="${lib.dir}/${app.name}.jar"> <fileset dir="${bld.dir}" includes="**" /> </jar> разбираем по букавам :) 1. ${lib.dir} - место куда jar свалится после создания; 2. ${bld.dir} - корень с которого файлы будут добавляться в jar(с путями до упора). т.к. указано: <property name="bld.dir" value="${basedir}/build" /> <property name="lib.dir" value="${basedir}/lib" /> то соответственно директории ./build и ./lib должны существовать можно их создать например добавив таргет: <target name="setup" depends="init"> <mkdir dir="${lib.dir}"/> <mkdir dir="${bld.dir}"/> </target> соотвю. изменив <target name="make-jar" depends="init"> на <target name="make-jar" depends="setup"> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2004, 12:53 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
киньте сюда работающий XML файл, плиз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2004, 15:17 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2004, 15:22 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
Все ненадо, получилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2004, 15:52 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
прошу не издеваться, но как выглядит КОНКРЕТНЫЙ build.xml для моего варианта? исходные данные: в идее проект называется KHR там есть еще каталоги scr classes ну нифига я не понимаю чего там надо исправить еще в этом долбаном xml файле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2004, 18:57 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
У меня получилось только когда я в ANTе в закладке properties выбрал make-jar (по умолчанию там стоит all). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2004, 12:12 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
А вот кусок моего xml Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2004, 12:14 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
все сделал как показывали - теперь создает jar файл, но при его двойном клике выдает: --------------------------- Java Virtual Machine Launcher --------------------------- Failed to load Main-Class manifest attribute from D:\IdeaProjects\KHR\khr.jar --------------------------- OK --------------------------- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2004, 19:59 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
Хорошо, что только это :) Могло бы написать: - прочитайте спецификацию jar архивов. - прочитайте мануал по target'у jar. - а теперь подумайте, что вы делаете. Причём тут манифест и main class. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2004, 16:18 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
Чтоб запустить необходимо чтобы в файле META-INF/manifest.mf была запись типа Main-Class: com.company.MyClass те для того чтобы JVM знаал какой именно класс запускать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2004, 11:04 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
serjik, спасибо за терпение но про манифест я только щас услышал - нет у меня никакого манифеста - не создает его ИДЕЯ. ох, блин, с каждым шагом обнаруживается, что надо где-то прочитать основы создания jar файла - только вот по ссылкам побегал - везде навороченные объяснения и готовые решения, которые не работают в моем варианте (и не надо ...может в консерватории подправить). Что-то не нашел нигде простой пример как да что. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2004, 19:23 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
jars: http://java.sun.com/j2se/1.4.2/docs/guide/jar/index.html http://java.sun.com/j2se/1.4.2/docs/guide/jar/jar.html#JAR%20Manifest Что тут трудного, непонятного, замудрённого, требующего непомерной смекалки, поражающего воображение и заставляющего писать на дельфи? ant jars: http://ant.apache.org/manual/CoreTasks/jar.html Здесь тоже самое? И примеры для лунатиков написаны? ох, блин, с каждым шагом обнаруживается, что надо где-то прочитать основы создания jar файла - только вот по ссылкам побегал - везде навороченные объяснения и готовые решения, которые не работают в моем варианте (и не надо ...может в консерватории подправить). Что-то не нашел нигде простой пример как да что. Лучше так: С каждым шагом обнаруживается, что прежде чем что-то делать, нужно понять что делать, а не пытаться, услышав два слова, строить глубокие выводы и составлять авторитетные суждения. Хотя конечно же тяжело, что примеры пишут не под твой код... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2004, 10:35 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
NotGonnaGetUsjars: http://java.sun.com/j2se/1.4.2/docs/guide/jar/index.html http://java.sun.com/j2se/1.4.2/docs/guide/jar/jar.html#JAR%20Manifest Что тут трудного, непонятного, замудрённого, требующего непомерной смекалки, поражающего воображение и заставляющего писать на дельфи? ant jars: http://ant.apache.org/manual/CoreTasks/jar.html Здесь тоже самое? И примеры для лунатиков написаны? ох, блин, с каждым шагом обнаруживается, что надо где-то прочитать основы создания jar файла - только вот по ссылкам побегал - везде навороченные объяснения и готовые решения, которые не работают в моем варианте (и не надо ...может в консерватории подправить). Что-то не нашел нигде простой пример как да что. Лучше так: С каждым шагом обнаруживается, что прежде чем что-то делать, нужно понять что делать, а не пытаться, услышав два слова, строить глубокие выводы и составлять авторитетные суждения. Хотя конечно же тяжело, что примеры пишут не под твой код... подписался зы Хотя конечно же тяжело, что примеры пишут не под твой код... хорошо сказано!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2004, 10:40 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
Вот пример манифест файла Manifest-Version: 1.0 Main-Class: mobiltrade.MobilTrade ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2004, 11:07 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
фигня какая-то получается: вот этот build.xml, исправленный после подсказок - генерит наконец-то khr.jar ============================================== <?xml version="1.0" encoding="ISO-8859-1"?> <project name="KHR" default="make-jar"> <property name="compiler.debug" value="on"/> <property name="compiler.generate.no.warnings" value="off"/> <property name="compiler.args" value=""/> <property name="compiler.max.memory" value="128m"/> <patternset id="compiler.excluded"/> <patternset id="compiler.resources"> <include name="**/?*.properties"/> <include name="**/?*.xml"/> <include name="**/?*.gif"/> <include name="**/?*.png"/> <include name="**/?*.jpeg"/> <include name="**/?*.jpg"/> <include name="**/?*.html"/> <include name="**/?*.dtd"/> <include name="**/?*.tld"/> </patternset> <property name="jdk.home.java_version_1.5.0" value="C:/Program Files/Java/jdk1.5.0"/> <path id="jdk.classpath.java_version_1.5.0"> <fileset dir="${jdk.home.java_version_1.5.0}"> <include name="jre/lib/jce.jar"/> <include name="jre/lib/charsets.jar"/> <include name="jre/lib/javaws.jar"/> <include name="jre/lib/deploy.jar"/> <include name="jre/lib/plugin.jar"/> <include name="jre/lib/jsse.jar"/> <include name="jre/lib/rt.jar"/> <include name="jre/lib/forms_rt.jar"/> <include name="jre/lib/ext/dnsns.jar"/> <include name="jre/lib/ext/sunjce_provider.jar"/> <include name="jre/lib/ext/sunpkcs11.jar"/> <include name="jre/lib/ext/localedata.jar"/> <include name="../../../IntelliJ-IDEA-4.5/redist/javac2.jar"/> </fileset> </path> <property name="project.jdk.home" value="${jdk.home.java_version_1.5.0}"/> <property name="project.jdk.classpath" value="jdk.classpath.java_version_1.5.0"/> <import file="${basedir}/module_khr.xml"/> <target name="init" description="Build initialization"> <!-- Perform any build initialization in this target --> <property name="bld.dir" value="${module.khr.basedir}/" /> <property name="lib.dir" value="${module.khr.basedir}/" /> </target> <target name="make-jar" depends="init"> <jar jarfile="${lib.dir}/khr.jar"> <fileset dir="${bld.dir}/classes/" includes="**" /> </jar> </target> <target name="clean" depends="clean.module.khr" description="cleanup all"/> <target name="make-jar" depends="init, clean, compile.module.khr" description="build all"/> </project> ===================== после этого - естественно он не запускается, нет грит main class. ОК. Переименовал я его из khr.jar в khr.zip и вошел в архив. Открыл папку META-INF и там открыл файл mainest.mf естественно никаого упоминания про Main-Class там нет!!! Manifest-Version: 1.0 Ant-Version: Apache Ant 1.6.1 Created-By: 1.5.0-b64 (Sun Microsystems Inc.) Что ж, В П И С АЛ ручками Manifest-Version: 1.0 Ant-Version: Apache Ant 1.6.1 Created-By: 1.5.0-b64 (Sun Microsystems Inc.) Main-Class: Main_KHR Думаете, что-то изменилось!? Сохранил-вышел-переименовал снова в jar-запустил - запустилась первая форма (Меню), но при нажатии на опцию меню - открыть новую форму - новая форма не показывается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2004, 20:12 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
Лучше бы ты прочитал Г Л А З К А М И, ссылки которые я написал. Думаете, что-то изменилось!? Конечно. Раньше не было никакого main class, а теперь есть не работающий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2004, 10:08 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
сорри, просто бошка болит после корпоративного праздника. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2004, 10:09 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
Не обязательно переделывать в zip, jar файл можно открыть Ctrl+PageDown Кстати у тебя какая система? и чего у тебя в переменных понаписавано ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2004, 16:18 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
система W2000 SP3 IntelliJ IDEA 4.5 в переменных Environment Variables в разделе System variables не нашел ни следа упоминания о джаве. а что!? я так подозреваю, что-то надо там подкрутить? типа путь к джава компиллеру? а как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2004, 19:28 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
итак....научился генерить jar файл для своих приложений (это я так думаю) но почему-то запускается только первая ГЛАВНАЯ форма меню или приложение состоящее из одной формы (ну типа тесты и самплы сановские). ТО есть джар файл вроде как запускается и "работает". Никак не могу понять - почему не запускается, вернее не открывается моя форма из главной формы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2004, 20:10 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
что значит не открывается? что пишется в консоле при этом? всё ли ты поместил в jar, что нужно? У тебя довольно хитрые инклюды, проверь лишний раз. Достань содержимое jarа и просто запусти приложение, типа java -classpath .;xxx YourMainClass Если никаких сообщений об ошибках нет и если содержимое jar'a запустится как положенно - тогда и будем думать, что же можно было сделать "не так" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2004, 20:19 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
NotGonnaGetUsчто значит не открывается? кликаю на созданном jar файле - ----> открывается приложение и главная форма (МОЕ МЕНЮ), затем в меню выбираю опцию показать форму Employees после этого ничего не происходит. NotGonnaGetUsчто пишется в консоле при этом? ничего не пишет - я ж в TotalCommandere кликаю NotGonnaGetUsвсё ли ты поместил в jar, что нужно? У тебя довольно хитрые инклюды, проверь лишний раз. все что было в classes ---- все ушло в jar NotGonnaGetUsДостань содержимое jarа и просто запусти приложение, типа java -classpath .;xxx YourMainClass Если бы еще знать конкретно что там в этой строке что означает и что такое и зачем ".;" что вместо xxx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2004, 20:34 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
попробовал запустить мой jar таким образом в cmd зашел в мой каталог набрал javaw -jar khr.jar в том же каталоге, где проект идеевский лежит открыла первую форму меню с иконками в меню, но при выборе опции открыть новую форму - ничего не сработало и никаких ругательств не выдала если попробовать скопировать джар файл в корень с: то форма менюб запускается но без иконок - толкьо текст (то есть она в этом случае не знает откуда иконки брать) и ....блин иконки в jar файл не входят - то есть приходится таскать за собой иокнки в отдельном каталоге. Или есть способ просто их впихнуть в jar файл насильно в виде дополнительного каталога? Чем больше ковыряюсь в яве тем больше ненавижу эту технологию - столько ненужных и недокументированных шагов надо предусмотреть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2004, 20:43 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
да, кстати, при открытии формы Employees она должна обратиться к классу DB и пойти на коннект с SQL SERVER и вытащить resultset, чтоб его потом на форме открывшейся показать. Может у меня не происходит вызов этого класса DB, то есть не происходит соедирение с базой данных и соотвественно не выполняется следущая строка в коде public void showEmployees() throws Exception { DB.getConnection(); MyOfficeTreeResultDataSet(); // а до этого уже не доходит!!!!? formEmployees myform = new formEmployees(/*myDatabase*/); myform.setSize(1024, 768); myform.setVisible(true); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2004, 20:48 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
java без консоли - не java :) Запусти из cmd, если тотал командер скрывает консоль. Туда обычно пишутся все не пойманные эксепшены и System.out'ы. java -help там написано, что писать в класспас. Можешь не писать .; если не нравится :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2004, 21:37 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
я ж грю НИКАКОГО ексепшена и никаких сообщений в окне cmd ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2004, 22:11 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
Если нет никаких эксепшенов, то проблема в кривом коде, а не java или jar. Иди и смотри что делает тобой же написанный код. Было бы забавно на него глянуть целиком. Вне архива твоё приложение запускалось как надо? Ты так и не ответил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2004, 10:13 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
что значит вне архива? оно нормально срабатывает в IDEA, а если запускать jar, то только первая форма открывается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2004, 10:22 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
Imgonnagetyoubabe.... если тебе забавно: приложение делает вот что: -открывает форму главного меню -при выборе опции Employees - открывает форму Employees -перед открытием формы Employees обращается к классу DB чтоб заполнить деревья (список офисов....) на форме -в процессе коловращения в классе DB лезет на SQL SERVER и генерит Object[][] o_data; массив офисов Object[][] s_data; массив видов сервиса Object[][] l_data; массив языков - затем КОНСТРУИРУЕТ форму, размещает всевозможные кнопочки и панельки и выравнивает их - затем заполняет деревья - затем.....а вот хрен она делает в jar файле затем.....вообще не доходит до стадии открытия формы Employees. что-то невпорядке с стадией DB, наверное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2004, 10:33 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
Причин может быть море. Без взгляда на код трудно сказать. Например, в своём коде ты перехватываешь exception's, но обрабатываешь их не правильно. В итогде программа не делает то, что нужно. например: Код: plaintext 1. 2. 3. 4. 5. !!!Не должно существовать сatch, которые ничего не делают. Они либо должны фиксить ошибочное состояние, либо громко-громко об этом кричать. 2) Почему это работает в IDEA, но не работает в jar. - Твой код может обращаться к классам из других jars, которые IDEA прописывает в classpath при запуске приложения. А ты их в манифест не вписал. - Твой код использует файлы ресурсов (*.xml *.jpg etc). Ты мог пропустить его в jar или использовать относительные пути до этих файлов. В идее и в jar рут может быть разный. И т.п. - Ты можешь писать в файл, который расположен теперь внутри jar. В итоге ошибки - И т.д. Если все ошибки перехватываются, и корректно обрабатываются ты быстро найдёшь причину. Если нет - будешь задавать глупые вопросы. ------- В любом случае, ты всегда можешь запустить свой код в режиме дебага и подконнектиться к нему из IDEA. После чего вопросов совсем не останется. Если дебагер это слишком сложно для неокрепшего разума, вставь 50 систем.аут'ов. Найди ту строчку после которой код исполняется не так, как тебе хочется. Если не станет понятно, почему он не исполняется, приведи этот кусок здесь - посмотрим, расскажем. з.ы. Только не надо говорить, что у тебя "просто не работает". Никакого дельного ответа, кроме "сделай чтоб работало", ты никогда не получишь, потому что никто твой код в глаза не видел и не может предположить всех глупостей, которые в нём можно сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2004, 17:08 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
ок, пока не нужно деталей, можешь рассказать в принципе что я делаю неправильно на первой форме (МЕНЮ)? Причем эту форму показывает мой созданный jar, и даже иконки для пунктов меню показывает (то есть он знает путь к картинкам) import javax.swing.*; import java.awt.*; import java.awt.event.WindowEvent; import java.awt.event.WindowAdapter; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class Main_KHR extends JFrame{ String[] columnNames; static Object[][] data; public static void main(String[] args) { Main_KHR mainmenu = new Main_KHR(); mainmenu.setSize(400,200); mainmenu.setVisible(true); } public Main_KHR() { super("KHR Main Menu"); this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); DB.closeConnection(); } }); Container contentPane = this.getContentPane(); contentPane.setLayout(new BorderLayout()); JMenuBar menubar = new JMenuBar(); this.setJMenuBar(menubar); JMenu menuFile = new JMenu("File"); JMenu menuDatabase = new JMenu("Databases"); menubar.add(menuFile); Action quit = new QuitAction(); menuFile.add(quit); menubar.add(menuDatabase); final JMenuItem itemd1 = new JMenuItem("Employees"); final JMenuItem itemd2 = new JMenuItem("Projects"); final JMenuItem itemd3 = new JMenuItem("Contractors"); final JMenuItem itemd4 = new JMenuItem("Library"); menuDatabase.add(itemd1); menuDatabase.addSeparator(); menuDatabase.add(itemd2); menuDatabase.addSeparator(); menuDatabase.add(itemd3); menuDatabase.addSeparator(); menuDatabase.add(itemd4); ImageIcon image1 = new ImageIcon(getToolkit().createImage("images/Employees.gif")); ImageIcon image2 = new ImageIcon(getToolkit().createImage("images/Projects.gif")); ImageIcon image3 = new ImageIcon(getToolkit().createImage("images/Contractors.gif")); ImageIcon image4 = new ImageIcon(getToolkit().createImage("images/Library.gif")); itemd1.setIcon(image1); itemd2.setIcon(image2); itemd3.setIcon(image3); itemd4.setIcon(image4); //======================== itemd1.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { try { showEmployees(); } catch (Exception e1) { e1.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } } }); } //================================================ class QuitAction extends AbstractAction { public QuitAction() { super("Quit"); } public void actionPerformed(ActionEvent e) { int response = JOptionPane.showConfirmDialog(Main_KHR.this, "Really Quit?"); if (response == JOptionPane.YES_OPTION) System.exit(0); } } public void showEmployees() throws Exception { DB.getConnection(); MyOfficeTreeResultDataSet(); formEmployees myform = new formEmployees(/*myDatabase*/); myform.setSize(1024, 768); myform.setVisible(true); } private void MyOfficeTreeResultDataSet() { columnNames = new String[] { "Id_Office", "OfficeName", "Id_Dept", "Department"}; data = DB.ExecQuery_OfficesTree(); } public static Object[][] getMyTreeArray(){ return data; } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2004, 19:25 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
Скорее всего не прописан путь к JDBC-драйверу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 12:12 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
Alexander2пока не нужно деталей, можешь рассказать в принципе что я делаю неправильно на первой форме (МЕНЮ)? Спасибо за разрешение. Забудем пока о том, КАК написан код. Поговорим о том, что он делает не правильно... Код: plaintext 1. 2. Код: plaintext 1. 2. 3. 4. 5. 6. 7. Если у теюя DB написан через зад, то всё будет молча висеть. Код: plaintext 1. Нельзя так выходить, сам ведь понимаешь. Вернёмся к тому КАК написан код. Код написан - никак. Это вообще не код. Мы ведь не на дельфи пишем... и даже не на ассемблере. Зачем пихать data в main_khr, да ещё как static не понимаю. Я потратил 15 минут на рефакторинг твоего кода и не большие исправления. Сравни с исходным вариантом, какие мысли возникают? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 16:52 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
спасибо, друг, (в своем постинге я не РАЗРЕШИЛ тебе рассказать, а как раз спросил МОЖЕШЬ ли рассказать...это так к слову о полку Игореве). ну если у меня даже в MainClass такие заморочки - то ессно и вызываемые формы не лучше, дык я знаю это!!!! потому что беру готовые так называемые самплы из сановского титориала и пытаюсь сделать нечто работающее для моей задачи. а вот по форме formEmployees у меня общий вопрос. вот тут кусок конструктора // ================C O N S T R U C T O R public formEmployees() throws Exception { BorderLayout myborderLayout = new BorderLayout(); contentPane = (JPanel)this.getContentPane(); contentPane.setLayout(myborderLayout); JPanel top_NORTH = new JPanel(); // panel for Fast find + Employee Ststus + Edit-Browse action buttons top_NORTH.setLayout(new SpringLayout()); //============================================================ //Put FastFind text box and the radio buttons into a panel. group_FastFind = MyPaneFastFind(); // !!!!!!!!!!!!!!!!!!!!function //============================================================ //Put the radio buttons in a line in a panel. group_EStatus = MyPaneActiveEmployeeStatus(); // !!!!!!!!!!function //========================================================== // Put the BIG buttons in a line in a panel. group_Browse = MyPaneBigButtons(); // !!!!!!!!!function //========================================================== // Create tabbed panel with filters panels tb_Filters = MyLeftTabbedPane(); // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!function //========================================================== // populating left tabbed pane and right split pane with subpanels split_main= MyMainSplitPane(); //========================================================== // populating top panel with subpanels top_NORTH.add(group_FastFind); top_NORTH.add(group_EStatus); top_NORTH.add(group_Browse); //gBrowse_Box); SpringUtilities.makeCompactGrid(top_NORTH, 1, top_NORTH.getComponentCount(), 6, 6, 6, 6); status_main = new JPanel(); //--------<----------- Employee status panel status_main.setMinimumSize(new Dimension (1200,100)); status_main.setMaximumSize(new Dimension (200,100)); Border border = BorderFactory.createEtchedBorder(Color.white, new Color(178, 178, 178)); status_main.setBorder(border); status_main.setOpaque(true); // Make untrasparent background for the row //===================================================== // creating final form with TOP CENTER Status panels contentPane.add(top_NORTH, BorderLayout.NORTH); contentPane.add(split_main, BorderLayout.CENTER); // Placing status raw on a panel contentPane.add(status_main, BorderLayout.SOUTH); //Display the window. this.setTitle("Employees"); } //======== E N D OF C O N S T R U C T O R тут я раскидал создатель второстепенных панелей в функции, чтоб хоть как то навигироваться в этом коде иначе в конструкуторе ничего не найдешь сразу. Да и то чтоб найти - а что же я прописал на нажатие конпки на суббанели XXX приходится искать по всему коду эту чертову кнопку и событие к ней (согласись, что в дельфи - когда ты видишь кнопку и события с ней связанные - это гораздо-гораздо эффктивнее). Но вопрос пока даже не к удобству кодирования, а к тому, что на моей форме многие контролы управляют содержимым моего грида, в котором я хочу показывать список работников. При смене состояния в группе стату работника - грид должен перестраиваться (то есть перевыполняться запрос на sql server), ну и так далее для все[ остальных компонентов. Так вот я сделал метод RefreshTable(), чтоб вызывать его при смене состояния кнопок. Поначалу по неумению запихнул грид в простую панель - то есть у меня не появились скролбары, затем попробовал взять пример таблицы и скропанели с swing и нихрена теперь даже не выводится ни чего. но даже не в этом основной вопрос - а почему даже в вызывающем обновление грида методе мне надо пересоздавать компоненты на форме вместо того чтобы просто показать грид с новым содержанием? Дело в том, что в конструкторе при открытии формы у меня не появляется грид в этой области, а только после рефреша то есть конкретного вызова данных с сервера. Как у меня в дельфи сделано - открывается пустая форма и пустой грид - указываю офис и грид наполняется содержимым без всяких кодирований - просто он завязан на датасет - который в случае перезапроса уже что-то содержит. Так вот вопрос - можно ли показать пустой грид и только обновлять его содержимое вместо того, чтоб снова перекомпановывать эту скрол-панель под новое содержимое? public void RefreshTable() { // DefaultTableModel model = new DefaultTableModel(); // final JTable tableEmployees = new JTable(model); columnNames = new String[] { "FirstName", "LastName", "Department", "JobTitle","Office"}; e_data = DB.ExecStoredProc(myOffice, myDept, activeStatus); // Call stored procedure SpSelectEmployees3 from SQL SERVER // tableEmployees.setAutoCreateColumnsFromModel(true); //tableEmployees = new JTable(e_data, columnNames); // populating grid with data from result set = stored procedure SpSelectEmployees3 tableEmployees = new JTable(e_data, columnNames); // populating grid with data from result set = stored procedure SpSelectEmployees3 JTableHeader header = tableEmployees.getTableHeader(); tableEmployees.getTableHeader().resizeAndRepaint(); scrollPane.add(header, BorderLayout.NORTH); // Add header in NORTH slot scrollPane.add(tableEmployees, BorderLayout.CENTER); SelectionListener listener = new SelectionListener(tableEmployees); tableEmployees.getSelectionModel().addListSelectionListener(listener); tableEmployees.getColumnModel().getSelectionModel() .addListSelectionListener(listener); scrollPane.invalidate(); scrollPane.validate(); scrollPane.repaint(); /* testPanel.invalidate(); testPanel.removeAll(); testPanel.add(header, BorderLayout.NORTH); // Add header in NORTH slot testPanel.add(tableEmployees, BorderLayout.CENTER); testPanel.validate(); testPanel.repaint(); testPanel.setPreferredSize(new Dimension(500, 70)); */ tableEmployees.setPreferredScrollableViewportSize(new Dimension(500, 70)); //tableEmployees.addItemListener(new ItemListener() { // // }); if (true) { tableEmployees.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { Point p = e.getPoint(); int row = tableEmployees.rowAtPoint(p); int column = tableEmployees.columnAtPoint(p); } } }); } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 20:42 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
блин взял и вставил твой код главного класса вместо того что было написано у меня - нихрена нетерь ничего не запускается некий BootClass у тебя тут прописан - а что мне с ним делать? раньше все хоть работало и показывалась главная форма меню :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 20:49 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
короче, возвращаюсь я к своему разбитому корыту, хоть и худое но стирать можно.... блин, ничего хитрого я там не делал в моем главном классе!!!!!!!!! расположил создание меню и прописал вызов других форм!!!!!!!! все как в учебнике блин!!!! а теперь даже эта форма не открывается!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 20:54 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
Естественно, если ты просто вставишь то, что я написал к себе - то проект не будет даже компилироваться. Я перенёс из этого класса данные и часть методов в другой класс. Соответственно все ссылки на них нужно изменить в остальном коде. BootClass - это стартовый класс. Он инициализирует данные и показывает главное окошко. Про твои вопросы... 1. Swing. По экспериментируй просто с интефейсом. Забудь про базу данных. По наполняй JTable "руками", уясни в чём смысл invalidate, validate. revalidate, repaint, выясни как работает JScrollPane и т.д. Это что бы не возникало вопросов, почему рисуется/не рисуется до/после рефреша и т.п. Могу сказать только совсем коротко: - пока swing компоненты не стали "активны" (т.е. компонент стоящий в самом верху иерархии не стал видимым) - это просто объекты. Ты можешь делать с ними всё что угодно и как угодно. (Вызвать repaint для них бесполезно). - когда они становятся активны, они попадают в область действия потока, занимающегося их прорисовкой и обработкой событий (мышь, кейбоард etc). C этого момента работать с компонентами просто как с объектами уже нельзя. Нужно что бы выполнялись определённые правила, иначе swing' поток будет отрисовывать компоненты не правильно, вплоть до возникновения в нём исключительных ситуаций. Правила простые: - модифицировать компоненты следует в потоке ивент диспатчера (не которые компоненты можно изменять когда попало, но прежде нужно свериться с документацией, что это безопасно). - Если компонент был изменён, по окончанию всех изменений, нужно вызвать метод revalidate() (в awt это было два вызова invalidate, потом validate). После этого компонент будет поставлен в очередь на перерисовку. - начиная работать с каким-то компоненто нужно прочитать его javaDoc's. Их для того и пишут, что бы не было сомнений, как работать с jscrollpane и т.д. 2. Понятность кода :) Ты смотришь на проблему очень узко. Всё что ты пишешь - это просто гуи, в котором обработчики событий умещаются в один метод. В этом случае gui креатор, которые позволяет накидать "кнопочки" и быстро показать код, который будет выполняться при нажатии на них - это бог спустившийся на землю. Но есть одно "маленькое" НО. Как только логика перерастает быть тривиальной - помощь таких инструментов сходит на нет. И код, который ты станешь писать станет не читаемый, не модифицирумый и т.д. и т.п. Т.е. вылезут все те "минусы" о которых ты пишешь: тут я раскидал создатель второстепенных панелей в функции, чтоб хоть как то навигироваться в этом коде иначе в конструкуторе ничего не найдешь сразу. Да и то чтоб найти - а что же я прописал на нажатие конпки на суббанели XXX приходится искать по всему коду эту чертову кнопку и событие к ней (согласись, что в дельфи - когда ты видишь кнопку и события с ней связанные - это гораздо-гораздо эффктивнее). только никакое дельфи уже не может. Если подходить с этих позиций, то в бога превращается java, посколько позволяет просто и понятно писать код (естественно нужно понимать принципы ооп, после добавления новой функциональности в код "прилизывать" его (читай рефакторить), что бы все элементы занимали нужное место и код не терял ясной структуры, переменным/методам/классам давать понятные названия и т.п. мелочи). В принципе, ничто не мешает "так же хорошо" писать на других языках. Но java не засорён синтаксическими конструкциями затрудняющими понимание или опасными при не внимательном использовании. Но у других языков нет такого преимущества как кроссплатформенность и великолепные библиотеки. ^^^ это был злой пиар. Я привёл в предыдущем посте свой вариант кода только для того, что бы показать, что то же самое что на писал ты, можно написать ясно и понятно. Думаю любой, кто посмотрит 2 минуты на мой код - сразу скажет что и как он делает. А с твоим ему придётся разбираться минут 5. Хотя и там и там происходит одно и тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2004, 13:29 |
|
||
|
Как сделать JAR в IntellJIDEA
|
|||
|---|---|---|---|
|
#18+
еще раз спасибо, если бы все java программеры были такими терпимыми, то отношение к ней изменилось бы быстрее. достал вот электронный бук OReilly.Java.Swing.2nd.2002.chm ~6 мег очень полезная и хорошо сделанная вещица. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2004, 21:25 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2153231]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
87ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 400ms |

| 0 / 0 |
