Скомпилируйте один файл .java с двумя классами в два файла .class [закрыто]JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Скомпилируйте один файл .java с двумя классами в два файла .class [закрыто]

Сообщение Anonymous »

Сейчас у меня есть файл .java, настроенный следующим образом:

Код: Выделить всё

package com.ds;

class c{...}

public class Main{...}
Когда я компилирую файл Main.java, в результате получается единственный файл .class — Main.class.

Когда я пытаюсь запустить .class с помощью java com.ds.Main, это не работает! Он говорит, что не может найти или загрузить класс.

Когда я пытаюсь запустить .class с помощью java Main, он запускается, но я получаю такую ​​ошибку :

Код: Выделить всё

Exception in thread "main" java.lang.NoClassDefFoundError: Main (wrong name: com
/DatingService/Main)

at java.lang.ClassLoader.defineClass1(Native Method)

at java.lang.ClassLoader.defineClass(ClassLoader.java:792)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
Я видел это раньше, когда пытался найти решение, и ни одно из найденных мной решений не применимо ко мне или просто не сработало.

После небольшого исследования я предполагаю, что javac не будет разделять классы внутри файла, по крайней мере, по умолчанию? Я знаю, что многие IDE, такие как Eclipse и IntelliJ, разделяют классы на два отдельных файла .class (я могу это подтвердить). Итак, есть ли способ сделать это с помощью Javac? Я использую javac в качестве компилятора для IntelliJ, поэтому должен быть какой-то способ, если это не будет сделано до компиляции.

Если я удалю пакет, я смогу прекрасно запустить Java Main. скомпилирован только один файл .class. Так что я немного растерян и немного в отчаянии. Я стараюсь полностью избегать изменения своего кода или разделения классов на два отдельных файла .java.

Подробнее здесь: https://stackoverflow.com/questions/192 ... lass-files
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»