Я могу скомпилировать файл Main.java без каких-либо проблем в Eclipse.Как скомпилировать java-файлы в linux с пакетом
Внутри Main.java У меня есть
package com.selenium.zLoadProfilerPkg;
Внутри 3 других файлов У меня также есть
package com.selenium.zLoadProfilerPkg;
Однако когда я загрузить всю структуру в Linux, и я стараюсь, чтобы скомпилировать его, я получить ошибки:
[[email protected] zLoadProfilerPkg]$ pwd
/home/sgalkov/zpp_tech_git_checkout/profiler/zLoadProfiler/zLoadProfiler/src/com/selenium/zLoadProfilerPkg
[[email protected] zLoadProfilerPkg]$ cd /home/sgalkov/zpp_tech_git_checkout/profiler/zLoadProfiler/zLoadProfiler/src/com/selenium/zLoadProfilerPkg/; javac -cp ".:/home/sgalkov/zpp_tech_git_checkout/profiler/selenium-2.30.0/selenium-java-2.30.0.jar:/home/sgalkov/zpp_tech_git_checkout/profiler/selenium-2.30.0/libs/*:/home/sgalkov/zpp_tech_git_checkout/profiler/selenium-2.30.0/selenium-server-standalone-2.30.0.jar:/home/sgalkov/zpp_tech_git_checkout/profiler/browsermob-proxy-2.0-beta-7/browsermob-proxy-2.0-beta-7-sources.jar:/home/sgalkov/zpp_tech_git_checkout/profiler/browsermob-proxy-2.0-beta-7/lib/*:/home/sgalkov/zpp_tech_git_checkout/profiler/zLoadProfiler/zLoadProfiler/src/com/selenium/zLoadProfilerPkg" Main.java
Main.java:54: error: cannot find symbol
BrowsermobProxy bmp = new BrowsermobProxy(PROXY_API_HOST, PROXY_API_PORT);
^
symbol: class BrowsermobProxy
location: class Main
Main.java:54: error: cannot find symbol
BrowsermobProxy bmp = new BrowsermobProxy(PROXY_API_HOST, PROXY_API_PORT);
^
symbol: class BrowsermobProxy
location: class Main
Main.java:310: error: cannot find symbol
HarStorage hs = new HarStorage(HARSTORAGE_HOST, HARSTORAGE_PORT);
^
symbol: class HarStorage
location: class Main
Main.java:310: error: cannot find symbol
HarStorage hs = new HarStorage(HARSTORAGE_HOST, HARSTORAGE_PORT);
^
symbol: class HarStorage
location: class Main
4 errors
[[email protected] zLoadProfilerPkg]$
Если я закомментировать "пакет com.selenium.zLoadProfilerPkg;" в каждом из 4-х файлов и скомпилировать их один за другим, все работает нормально.
Кроме того, если я пытаюсь скомпилировать это так:
cd /home/sgalkov/zpp_tech_git_checkout/profiler/zLoadProfiler/zLoadProfiler/src/com/selenium/zLoadProfilerPkg/;
javac -cp ".\
:/home/sgalkov/zpp_tech_git_checkout/profiler/selenium-2.30.0/selenium-java-2.30.0.jar\
:/home/sgalkov/zpp_tech_git_checkout/profiler/selenium-2.30.0/libs/*\
:/home/sgalkov/zpp_tech_git_checkout/profiler/selenium-2.30.0/selenium-server-standalone-2.30.0.jar\
:/home/sgalkov/zpp_tech_git_checkout/profiler/browsermob-proxy-2.0-beta-7/browsermob-proxy-2.0-beta-7-sources.jar\
:/home/sgalkov/zpp_tech_git_checkout/profiler/browsermob-proxy-2.0-beta-7/lib/*\
:/home/sgalkov/zpp_tech_git_checkout/profiler/zLoadProfiler/zLoadProfiler/src/com/selenium/zLoadProfilerPkg" \
BrowsermobProxy.java HarStorage.java HttpRequest.java Main.java
это компилируется, но я получаю дополнительный класс для Main.java
rw-r--r-- 1 sgalkov users 1422 Mar 11 20:30 Main$1.class
rw-r--r-- 1 sgalkov users 8264 Mar 11 20:30 Main.class
rw-r--r-- 1 sgalkov users 14864 Mar 11 19:32 Main.java
и я не могу запустить программа, я получаю ошибку:
Exception in thread "main" java.lang.NoClassDefFoundError: Main (wrong name: com/selenium/zLoadProfilerPkg/Main)
at java.lang.ClassLoader.defineClass1(Native Method)
Я осмотрел и попробовал различные варианты, но не смог собрать этот проект и был бы признателен за любые указатели.
Главный класс $ 1.class не является «лишним» классом, это внутренний класс (обычно). У вас есть внутренний класс в Main.java? (Даже анонимный внутренний класс?) –
Также вы обычно пишете небольшой скрипт для обработки пути к классам и, если вам нужно его регулярно создавать в оболочке * nix. Или вы можете использовать ant/maven/etc. Другая альтернатива (если вы не создаете ее регулярно на * nix) должна была бы просто (кашлять) экспортировать ее из Eclipse (так как вы говорите, что она работает в Eclipse, экспортируется как JAR). Экспорт из среды IDE Не является хорошей привычкой вступать, но если вам нужно делать это на разовой или очень редкой основе, это работает. –
спасибо, что я нашел внутренний класс – Kentor