-1

I have the following directory structure:

enter image description here

I'm having trouble compiling the source files in the 'models' package, which rely on all other files in packages src as well as the .jar file in lib. How would I write the classpath command to compile these model files (on mac)?

joseph@Josephs-MacBook-Pro models % javac -cp ".:.." NeuralNetworkMultiClass.java
../utils/Metrics.java:4: error: package org.knowm.xchart.style does not exist
import org.knowm.xchart.style.AxesChartStyler;
                             ^
../utils/Metrics.java:5: error: package org.knowm.xchart.style does not exist
import org.knowm.xchart.style.Styler;
                             ^
../utils/Metrics.java:6: error: package org.knowm.xchart.style.markers does not exist
import org.knowm.xchart.style.markers.SeriesMarkers;
                                     ^
../utils/Metrics.java:3: error: package org.knowm.xchart does not exist
import org.knowm.xchart.*;
^
../utils/Metrics.java:34: error: cannot find symbol
        XYChart chart = new XYChartBuilder()
        ^
  symbol:   class XYChart
  location: class Metrics
../utils/Metrics.java:34: error: cannot find symbol
        XYChart chart = new XYChartBuilder()
                            ^
  symbol:   class XYChartBuilder
  location: class Metrics
../utils/Metrics.java:50: error: cannot find symbol
        XYSeries series = chart.addSeries(seriesName, xData, yData);
        ^
  symbol:   class XYSeries
  location: class Metrics
../utils/Metrics.java:51: error: cannot find symbol
        series.setMarker(SeriesMarkers.NONE);
                         ^
  symbol:   variable SeriesMarkers
  location: class Metrics
../utils/Metrics.java:52: error: cannot find symbol
        new SwingWrapper<>(chart).displayChart();
            ^
  symbol:   class SwingWrapper
  location: class Metrics
../utils/Metrics.java:69: error: cannot find symbol
        ArrayList<XYChart> charts = new ArrayList<>();
                  ^
  symbol:   class XYChart
  location: class Metrics
../utils/Metrics.java:74: error: cannot find symbol
        XYChart chart = new XYChartBuilder()
        ^
  symbol:   class XYChart
  location: class Metrics
../utils/Metrics.java:74: error: cannot find symbol
        XYChart chart = new XYChartBuilder()
                            ^
  symbol:   class XYChartBuilder
  location: class Metrics
../utils/Metrics.java:81: error: cannot find symbol
        XYSeries costA1 = chart.addSeries("Alpha = 1", xData, ySeries[0]);
        ^
  symbol:   class XYSeries
  location: class Metrics
../utils/Metrics.java:82: error: cannot find symbol
        XYSeries costA2 = chart.addSeries("Alpha = 0.1" , xData, ySeries[1]);
        ^
  symbol:   class XYSeries
  location: class Metrics
../utils/Metrics.java:83: error: cannot find symbol
        XYSeries costA3 = chart.addSeries("Alpha = 0.01", xData, ySeries[2]);
        ^
  symbol:   class XYSeries
  location: class Metrics
../utils/Metrics.java:84: error: cannot find symbol
        costA1.setMarker(SeriesMarkers.NONE);
                         ^
  symbol:   variable SeriesMarkers
  location: class Metrics
../utils/Metrics.java:85: error: cannot find symbol
        costA2.setMarker(SeriesMarkers.NONE);
                         ^
  symbol:   variable SeriesMarkers
  location: class Metrics
../utils/Metrics.java:86: error: cannot find symbol
        costA3.setMarker(SeriesMarkers.NONE);
                         ^
  symbol:   variable SeriesMarkers
  location: class Metrics
../utils/Metrics.java:90: error: cannot find symbol
        new SwingWrapper<>(charts).displayChartMatrix();
            ^
  symbol:   class SwingWrapper
  location: class Metrics
../utils/Metrics.java:108: error: cannot find symbol
        ArrayList<XYChart> charts = new ArrayList<>();
                  ^
  symbol:   class XYChart
  location: class Metrics
../utils/Metrics.java:116: error: cannot find symbol
            XYChart chart = new XYChartBuilder()
            ^
  symbol:   class XYChart
  location: class Metrics
../utils/Metrics.java:116: error: cannot find symbol
            XYChart chart = new XYChartBuilder()
                                ^
  symbol:   class XYChartBuilder
  location: class Metrics
../utils/Metrics.java:123: error: cannot find symbol
            XYSeries cost = chart.addSeries("training", xData, ySeries[i]);
            ^
  symbol:   class XYSeries
  location: class Metrics
../utils/Metrics.java:124: error: cannot find symbol
            XYSeries recall = chart.addSeries("validation", xData, ySeries[i + 1]);
            ^
  symbol:   class XYSeries
  location: class Metrics
../utils/Metrics.java:125: error: cannot find symbol
            cost.setMarker(SeriesMarkers.NONE);
                           ^
  symbol:   variable SeriesMarkers
  location: class Metrics
../utils/Metrics.java:126: error: cannot find symbol
            recall.setMarker(SeriesMarkers.NONE);
                             ^
  symbol:   variable SeriesMarkers
  location: class Metrics
../utils/Metrics.java:131: error: cannot find symbol
        new SwingWrapper<>(charts).displayChartMatrix();
            ^
  symbol:   class SwingWrapper
  location: class Metrics
27 errors
Janez Kuhar
  • 3,705
  • 4
  • 22
  • 45
J Adamson
  • 417
  • 1
  • 5
  • 13

1 Answers1

1

You're running the command from projectDir/src/models but NeuralNetworkMultiClass.java depends on other packages as well.

You could run the java compiler from projectDir and place all compiled class files inside out:

javac -cp "src:lib/*" -d out src/*/*.java

Then if you, for example, want to run NeuralNetworkMultiClass, you do it from projectDir like so:

java -cp "out:lib/*" models.NeuralNetworkMultiClass

Refer to this and this on platform specifics when specifying a list of files/folders to the -cp flag.

Janez Kuhar
  • 3,705
  • 4
  • 22
  • 45