Я пишу проект в NetBeans, но мне нужно, чтобы он был скомпилирован с Javac, потому что он должен быть собран и выполнен через CLI. Как я могу это сделать? Я видел много ответов по конкретным проектам, но ни один из них не подходит для моей проблемы. Я прочитал человека javac и правильно установил classpath: javac -cp .. MyMain.java
, учитывая, что мой проект имеет следующую структуру:
src
|_mainPackage
|_package2
|_package3
|_MyMain.java
и я использую формат точек в своих импорте, как это:
import package1.class1
import package2.class2
public class MyMain {
public static void main(String[] args) {
//Stuff with classes in package1
.
.
.
//Stuff with classes in package2
.
.
.
}
}
Я не могу использовать муравей, потому что он предназначен для компиляции с использованием javac в CLI, так как это проект колледжа и имеет некоторые ограничения, налагаемые профессорами.
EDIT:
Я на самом деле получил возможность скомпилировать мои исходники, используя javac с командой usr@host: mainPackage $ javac -cp .. MyMain.java
, так как мой импорт использует формат точечного разделения, а «корневой пакет» находится в папке «mainPackage»; но когда я собираюсь запустить проект, у меня есть такой вывод:
usr@host: mainPackage $ java VideoRent
Exception in thread "main" java.lang.NoClassDefFoundError: MyMain (wrong name: mymain/MyMain)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: MyMain. Program will exit.