Java из терминала: & ldquo; Невозможно получить доступ к jarfile Example.jar & rdquo;

У упомянутого репозитория нет пакетов для хитрого (17.10), что вызывает 404. Вы должны удалить его из своей конфигурации.

Вы должны либо сделать это с помощью Software & amp ; Обновляет настройки GUI или находит файл списка источников, упоминающий его, и удаляет или комментирует эту строку.

Как вы говорите, у вас есть проблемы с поиском, попробуйте:

grep -r --include "*.list" "^deb" /etc/apt/sources.list* | grep "ubuntu-make"

Это должно показать вы имя файла, номер строки и содержимое строки, настраивающей этот PPA.

0
задан 19 April 2018 в 07:53

3 ответа

Да, чтобы запустить банку, она должна существовать.

При его создании вам необходимо сопоставить структуру каталогов с структурой пакета.

Например, ваши каталоги могут быть:

/home/ellen/proj/java/foo/example/src/example/Foo.java 
/home/ellen/proj/java/foo/example/src/example/util/MyList.java 

для источников и для файлов классов:

/home/ellen/proj/java/foo/example/classes/example/Foo.class
/home/ellen/proj/java/foo/example/classes/example/util/MyList.class

(часто вы находите классы в a ../bin/ .. вместо ../classes/ .. именованная папка или исходные файлы и файлы классов смешиваются в одних и тех же каталогах)

, соответствующих структуре пакета:

, то вы должны перейти в базовый каталог иерархии:

cd /home/ellen/proj/java/foo/example/classes

или установить его с параметром -C jar -C /home/ellen/proj/java/foo/example/classes ... или из исходного jar -C proj/java/foo/example/classes ... в качестве относительного пути.

Вы создаете файл jar, например:

jar -cf example.jar *.class

и проверяете его с помощью:

jar -tf example.jar 

Обратите внимание, что есть файл манифеста, автоматически сгенерированный и полезный, в качестве шаблона, где вы можете добавить информацию о том, что ваш основной класс, если у вас есть такой, но который довольно строгий в отношении синтаксиса (верхний / нижний регистр, разрывы строк).

Manifest-Version: 1.0
Created-By: 9-internal (Oracle Corporation)    
Main-Class: example.Main

Такая запись основного класса должна быть добавлена, если вы хотите запустить ее без указания основного класса:

java -jar example.jar 

, иначе вы должны использовать: [ ! d12]

java -cp example.jar example.Main

По существу, файл jar представляет собой zip-архив и может работать с этими инструментами.

Чистое разделение src / и bin / files полезно, когда вы имеют более чем несколько классов и, возможно, глубокую структуру пакетов.

 jar -cf example.jar -C classes . 

будет тогда, начиная с классов каталога / включать все, что часто вам нужно. (пример / класс, пример / util / .class, example / net / * class ...)

 jar --help 

информирует вас о синтаксисе.

1
ответ дан 22 May 2018 в 11:21
  • 1
    @karel Спасибо! Это объяснение очень подробно и помогает. На самом деле также нет никаких .class-файлов, структура в основном представляет собой только папку src со списком java-файлов. От googling немного больше, я думаю, мне нужно скомпилировать их для создания файлов классов, а затем, возможно, создать файл манифеста, а затем продолжить создание .jar и запустить проект. – ellen 19 April 2018 в 22:19
  • 2
    @karel Я пытаюсь скомпилировать с помощью javac -cp / path * .java, и он, похоже, не может найти пакет, который я пытаюсь включить. Я написал о моей новой проблеме здесь: stackoverflow.com/questions/49927382/… – ellen 19 April 2018 в 22:21
  • 3
    @ellen: Правильно, вам нужно создать файлы классов, скомпилировав их из источника, прежде чем вы сможете упаковать их в банку. И для их компиляции аналогичная зависимость между каталогами и структурой пакета также существует. В -cp -part вам нужно включить сторонние библиотеки, а также базовый каталог вашего проекта, например -cp /opt/ibm/ILOG/CPLEX_Studio_Community128/cplex/lib/cplex.jar:. (часть /opt/ibm....cplex кажется дублированной в вашей связанной публикации и другой ловушке это чувствительность идентификаторов - щедро обрабатывается окнами, а не java. – user unknown 19 April 2018 в 23:14
  • 4
    Таким образом, соглашение для пакетов java: все в нижнем регистре, например, «ilog.concert». который затем должен находиться в директории ... / ilog / concert / " и родительский элемент "ilog" являющийся базовым. Но я думаю, что "javac" java-компилятор терпимо относится к заглавным файлам в Windows и "java" время выполнения должно быть слишком. Тем не менее, вы должны проверить файл jar, независимо от того, соответствуют ли каталоги именам имен пакетов, и это проще, если имена каталогов совпадают по умолчанию. – user unknown 19 April 2018 в 23:20
  • 5
    @karel спасибо! Насколько я могу судить, дело не имеет. Я нахожусь на ubuntu 14.04, если это помогает. Я попытался добавить:. на путь, но без кубиков. Я не уверен, что вы подразумеваете под «удвоенным в вашей связанной публикации», можете ли вы уточнить? – ellen 20 April 2018 в 04:44

Да, чтобы запустить банку, она должна существовать.

При его создании вам необходимо сопоставить структуру каталогов с структурой пакета.

Например, ваши каталоги могут быть:

/home/ellen/proj/java/foo/example/src/example/Foo.java /home/ellen/proj/java/foo/example/src/example/util/MyList.java

для источников и для файлов классов:

/home/ellen/proj/java/foo/example/classes/example/Foo.class /home/ellen/proj/java/foo/example/classes/example/util/MyList.class

(часто вы находите классы в a ../bin/ .. вместо ../classes/ .. именованная папка или исходные файлы и файлы классов смешиваются в одних и тех же каталогах)

, соответствующих структуре пакета:

package example package example.util

, то вы должны перейти в базовый каталог иерархии:

cd /home/ellen/proj/java/foo/example/classes

или установить его с параметром -C jar -C /home/ellen/proj/java/foo/example/classes ... или из исходного jar -C proj/java/foo/example/classes ... в качестве относительного пути.

Вы создаете файл jar, например:

jar -cf example.jar *.class

и проверяете его с помощью:

jar -tf example.jar

Обратите внимание, что есть файл манифеста, автоматически сгенерированный и полезный, в качестве шаблона, где вы можете добавить информацию о том, что ваш основной класс, если у вас есть такой, но который довольно строгий в отношении синтаксиса (верхний / нижний регистр, разрывы строк).

Manifest-Version: 1.0 Created-By: 9-internal (Oracle Corporation) Main-Class: example.Main

Такая запись основного класса должна быть добавлена, если вы хотите запустить ее без указания основного класса:

java -jar example.jar

, иначе вы должны использовать: [ ! d12] java -cp example.jar example.Main

По существу, файл jar представляет собой zip-архив и может работать с этими инструментами.

Чистое разделение src / и bin / files полезно, когда вы имеют более чем несколько классов и, возможно, глубокую структуру пакетов.

jar -cf example.jar -C classes .

будет тогда, начиная с классов каталога / включать все, что часто вам нужно. (пример / класс, пример / util / .class, example / net / * class ...)

jar --help

информирует вас о синтаксисе.

1
ответ дан 17 July 2018 в 16:34

Да, чтобы запустить банку, она должна существовать.

При его создании вам необходимо сопоставить структуру каталогов с структурой пакета.

Например, ваши каталоги могут быть:

/home/ellen/proj/java/foo/example/src/example/Foo.java /home/ellen/proj/java/foo/example/src/example/util/MyList.java

для источников и для файлов классов:

/home/ellen/proj/java/foo/example/classes/example/Foo.class /home/ellen/proj/java/foo/example/classes/example/util/MyList.class

(часто вы находите классы в a ../bin/ .. вместо ../classes/ .. именованная папка или исходные файлы и файлы классов смешиваются в одних и тех же каталогах)

, соответствующих структуре пакета:

package example package example.util

, то вы должны перейти в базовый каталог иерархии:

cd /home/ellen/proj/java/foo/example/classes

или установить его с параметром -C jar -C /home/ellen/proj/java/foo/example/classes ... или из исходного jar -C proj/java/foo/example/classes ... в качестве относительного пути.

Вы создаете файл jar, например:

jar -cf example.jar *.class

и проверяете его с помощью:

jar -tf example.jar

Обратите внимание, что есть файл манифеста, автоматически сгенерированный и полезный, в качестве шаблона, где вы можете добавить информацию о том, что ваш основной класс, если у вас есть такой, но который довольно строгий в отношении синтаксиса (верхний / нижний регистр, разрывы строк).

Manifest-Version: 1.0 Created-By: 9-internal (Oracle Corporation) Main-Class: example.Main

Такая запись основного класса должна быть добавлена, если вы хотите запустить ее без указания основного класса:

java -jar example.jar

, иначе вы должны использовать: [ ! d12] java -cp example.jar example.Main

По существу, файл jar представляет собой zip-архив и может работать с этими инструментами.

Чистое разделение src / и bin / files полезно, когда вы имеют более чем несколько классов и, возможно, глубокую структуру пакетов.

jar -cf example.jar -C classes .

будет тогда, начиная с классов каталога / включать все, что часто вам нужно. (пример / класс, пример / util / .class, example / net / * class ...)

jar --help

информирует вас о синтаксисе.

1
ответ дан 23 July 2018 в 17:25

Другие вопросы по тегам:

Похожие вопросы: