Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
duskiness
0 / 0 / 0
Регистрация: 24.01.2014
Сообщений: 11
#1

Собрать jar файл в линуксе - Java SE

29.01.2014, 13:17. Просмотров 779. Ответов 8
Метки нет (Все метки)

Здраствуйте! Работаю в eclipse на винде. Есть проект, в eclipse он собирается автоматически export-export runnable jar file. Тут решил взять папку с проектом перекинуть в debian (линукс) и собрать его получить jar файл и запустить. Как это сделать, вот именно сам скрипт нужен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2014, 13:17
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Собрать jar файл в линуксе (Java SE):

Как в java создать исполн jar файл для выполнения с целью, что бы потом код этого jar нельзя было использовать
(Новичок) Добрый день. Подскажи пожалуйста, как быть. Как создать jar файл что...

Как правильно собрать и запустить проект в Jar или exe?
Всем добрый день. Прошу помощи. Пред история. Была поставлена задача...

Открыть файл на линуксе
пытаюсь открыть файл следующим образом: BufferedReader in = new...

Как поместить текстовый файл в JAR-файл
Здравствуйте! Столкнулся со следующей проблемой. Читаю файл txt. Он у меня...

jar файл
доброго времени суток, как в netbeans и eclipse преобразовать проект в jarфайл,...

.jar файл
Создал в Eclipse Runnable jar file, но при нажатии на него у меня ничего не...

8
KuKu
1559 / 1037 / 93
Регистрация: 17.04.2009
Сообщений: 2,995
29.01.2014, 14:54 #2
0
duskiness
0 / 0 / 0
Регистрация: 24.01.2014
Сообщений: 11
29.01.2014, 16:32  [ТС] #3
Не совсем то.я написал код ant скрипта:
XML
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
   <project name="05.jar" default="all" >
 
                 <target name="make.dirs" description="Make some dirs">
                         <mkdir dir="build"/>
                         <mkdir dir="build/class"/>
                 </target>
 
                 <target name="compile" description="compile java" depends="make.dirs">
 
                             <javac destdir="build/class" fork="yes" includeantruntime="false" >
                                 <src path="C:\Users\Артем\workspace\LSB\src">
                                 </src>
                         </javac>
                 </target>
 
                 <target name="stuff.jar" description="make jar file" depends="compile">
                         <jar destfile="build/stuff.jar">
                                 <fileset dir="build/class">
                                        <include name="**/*.class"/>
                                        <exclude name="**/CVS"/>
                                 </fileset>
                         </jar>
                 </target>
 
                 <target name="all" description="Do the build" depends="stuff.jar">
                </target>
           </project>
выдает следующее C:\Users\Артем\workspace\LSB\build.xml:10: Error running javac.exe compiler

Добавлено через 1 час 10 минут
в линуксе выдает следующее:
Bash
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
artem@debian:~/sborka/LSB$ ant
Buildfile: /home/artem/sborka/LSB/build.xml
 
make.dirs:
    [mkdir] Created dir: /home/artem/sborka/LSB/build
    [mkdir] Created dir: /home/artem/sborka/LSB/build/class
 
compile:
    [javac] /home/artem/sborka/LSB/build.xml:10: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
    [javac] failed to read ecj.jar (reconfigure with --with-ecj-jar): /usr/share/java/eclipse-ecj.jar
    [javac] failed to load org.eclipse.jdt.internal.compiler.batch.Main from ecj.jar: /usr/share/java/eclipse-ecj.jar
    [javac] java.lang.ClassNotFoundException: org.eclipse.jdt.internal.compiler.batch.Main not found in java.net.URLClassLoader{urls=[file:/usr/share/java/eclipse-ecj.jar], parent=gnu.gcj.runtime.SystemClassLoader{urls=[file:/usr/share/ant/lib/ant-launcher.jar,file:/usr/share/java/xmlParserAPIs.jar,file:/usr/share/java/xercesImpl.jar], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}}
    [javac]    at java.net.URLClassLoader.findClass(libgcj.so.13)
    [javac]    at java.lang.ClassLoader.loadClass(libgcj.so.13)
    [javac]    at java.lang.ClassLoader.loadClass(libgcj.so.13)
    [javac]    at com.sun.tools.javac.Main.<clinit>(Main.java:91)
    [javac]    at java.lang.Class.initializeClass(libgcj.so.13)
    [javac]    at java.lang.Class.forName(libgcj.so.13)
    [javac]    at org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory.doesModernCompilerExist(CompilerAdapterFactory.java:166)
    [javac]    at org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory.getCompiler(CompilerAdapterFactory.java:125)
    [javac]    at org.apache.tools.ant.taskdefs.Javac.findSupportedFileExtensions(Javac.java:961)
    [javac]    at org.apache.tools.ant.taskdefs.Javac.scanDir(Javac.java:938)
    [javac]    at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:909)
    [javac]    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
    [javac]    at java.lang.reflect.Method.invoke(libgcj.so.13)
    [javac]    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    [javac]    at org.apache.tools.ant.Task.perform(Task.java:348)
    [javac]    at org.apache.tools.ant.Target.execute(Target.java:390)
    [javac]    at org.apache.tools.ant.Target.performTasks(Target.java:411)
    [javac]    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
    [javac]    at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
    [javac]    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    [javac]    at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
    [javac]    at org.apache.tools.ant.Main.runBuild(Main.java:809)
    [javac]    at org.apache.tools.ant.Main.startAnt(Main.java:217)
    [javac]    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
    [javac]    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
 
BUILD FAILED
/home/artem/sborka/LSB/build.xml:10: java.lang.ExceptionInInitializerError
   at java.lang.Class.initializeClass(libgcj.so.13)
   at java.lang.Class.forName(libgcj.so.13)
   at org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory.doesModernCompilerExist(CompilerAdapterFactory.java:166)
   at org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory.getCompiler(CompilerAdapterFactory.java:125)
   at org.apache.tools.ant.taskdefs.Javac.findSupportedFileExtensions(Javac.java:961)
   at org.apache.tools.ant.taskdefs.Javac.scanDir(Javac.java:938)
   at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:909)
   at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
   at java.lang.reflect.Method.invoke(libgcj.so.13)
   at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
   at org.apache.tools.ant.Task.perform(Task.java:348)
   at org.apache.tools.ant.Target.execute(Target.java:390)
   at org.apache.tools.ant.Target.performTasks(Target.java:411)
   at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
   at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
   at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
   at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
   at org.apache.tools.ant.Main.runBuild(Main.java:809)
   at org.apache.tools.ant.Main.startAnt(Main.java:217)
   at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
   at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Caused by: java.lang.NullPointerException
   at com.sun.tools.javac.Main.<clinit>(Main.java:106)
   at java.lang.Class.initializeClass(libgcj.so.13)
   ...20 more
 
Total time: 3 seconds
0
Skipy
1996 / 1419 / 91
Регистрация: 25.11.2010
Сообщений: 3,611
29.01.2014, 16:57 #4
Код
java.lang.ClassNotFoundException: org.eclipse.jdt.internal.compiler.batch.Main not found in 
java.net.URLClassLoader{urls=[file:/usr/share/java/eclipse-ecj.jar], 
    parent=gnu.gcj.runtime.SystemClassLoader{urls=[file:/usr/share/ant/lib/ant-launcher.jar,file:/usr/share/java/xmlParserAPIs.jar,file:/usr/share/java/xercesImpl.jar], 
        parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}}
Что говорит which javac?
0
duskiness
0 / 0 / 0
Регистрация: 24.01.2014
Сообщений: 11
29.01.2014, 20:53  [ТС] #5
Цитата Сообщение от Skipy Посмотреть сообщение
Код
java.lang.ClassNotFoundException: org.eclipse.jdt.internal.compiler.batch.Main not found in 
java.net.URLClassLoader{urls=[file:/usr/share/java/eclipse-ecj.jar], 
    parent=gnu.gcj.runtime.SystemClassLoader{urls=[file:/usr/share/ant/lib/ant-launcher.jar,file:/usr/share/java/xmlParserAPIs.jar,file:/usr/share/java/xercesImpl.jar], 
        parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}}
Что говорит which javac?
я уже ввел javac, нет такой команды. Поэтому решил отложить на завтра , но как я понимаю у меня установленна jre и это только интерпретатор, а мне надо скомпилить сначала в байт-классы, и компилятор находится в jdk соответственно надо установить jdk я правильно понял?
0
Skipy
1996 / 1419 / 91
Регистрация: 25.11.2010
Сообщений: 3,611
30.01.2014, 09:40 #6
Тогда что говорит which ant? Я же правильно понимаю, ant Вы тоже самостоятельно не ставили?
0
duskiness
0 / 0 / 0
Регистрация: 24.01.2014
Сообщений: 11
30.01.2014, 13:14  [ТС] #7
Ant стоит в usr/bin/ant. И это логично потому что у меня собирается jar файл только если уже есть откомпилированные классы.Тоесть если я пропускаю этап javac. Javac - нету. значит его надо установить, сейчас попробую.

Добавлено через 1 час 0 минут
Решил проблему так установил sun jdk 1.7, здесь мануал по установке https://debian.pro/977 . Соответственно в этом же мануале настраивается javac и java ... Затем переше в директорию путь который состоит из латинских символов иначе ругается. И в коде удалил все коментарии и вообще все символы на русской раскладке все заменил латинице. Далее еще в скрипт добавил зменение манифеста потому что ант пишет в манифест только себя а надо указать еще и главный класс. После этого все собрало и запустилось в линуксе окончательный скрипт такой
XML
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
 <project name="05.jar" default="all" >
 
                 <target name="make.dirs" description="Make some dirs">
                         <mkdir dir="build"/>
                         <mkdir dir="build/class"/>
                 </target>
 
                 <target name="compile" description="compile java" depends="make.dirs"  >
 
                             <javac destdir="build/class" includeantruntime="true">
                                 <src path="./src"/>
                         </javac>
                 </target>
 
                 <target name="stuff.jar" description="make jar file" depends="compile">
                         <jar destfile="build/stuff.jar">
                                 <fileset dir="build/class">
                                        <include name="**/*.class"/>
                                        <exclude name="**/CVS"/>
                                 </fileset>
                     <manifest >
   
 
      <attribute name="Class-Path" value="."/>
    <attribute name="Main-Class" value="Start"/>
   
  </manifest>
                         </jar>
                 </target>
  
 
    
 
                 <target name="all" description="Do the build" depends="stuff.jar">
        </target>
           </project>
переходим в каталог и пишем
ant
cd build
java -jar stuff.jar
ВСЁ!)пользуйтесь)
0
Skipy
1996 / 1419 / 91
Регистрация: 25.11.2010
Сообщений: 3,611
30.01.2014, 13:20 #8
Мне кажется, что /usr/bin/ant - это линк. Куда он смотрит?
0
duskiness
0 / 0 / 0
Регистрация: 24.01.2014
Сообщений: 11
30.01.2014, 13:38  [ТС] #9
Цитата Сообщение от Skipy Посмотреть сообщение
Мне кажется, что /usr/bin/ant - это линк. Куда он смотрит?
да это линк, смотрит в usr/share/ant , ant видимо шел у меня в пакете дебиан)только для юзеров хочу еще раз повторить, а то может кто не понял, в ant баг судя по всему он с русскими символами не работает как в пути откуда собираем так и в самом коде. Или что скорей всего нужно изменить кодировку в xml файле в атрибуте)
0
30.01.2014, 13:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2014, 13:38
Привет! Вот еще темы с решениями:

.jar файл
Пишу прогу, которая использует .txt файл. Открываю в программе через private...

Запустить jar файл
Надо запустить из Java программы другую Java программу, упакованную в jar...

Сохранить файл из jar
Доброго дня, форумчане. Сидел прогал, тут понадобилось что бы моя прога...

Не запускается файл jar
Привет всем. Создал программу на java в Net Beans8.1. Собрал запустил - всё...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru