Включение отчета об ошибках является правильным решением, однако оно, похоже, не вступает в силу в программе, которая включает его, но только в последующих программах.
Таким образом, я всегда создаю файл / (который я обычно называю «genwrap.php»), который имеет по существу тот же самый код, что и популярное решение здесь (т. е. включить отчет об ошибках), а также включает в себя страницу, которую я действительно хочу вызвать.
Есть два шага для реализации этой отладки:
One - создать genwrap.php и поместить в него этот код:
<?php
error_reporting(-1);
ini_set('display_errors', 'On');
include($_REQUEST['page']);
?>
Two - изменить ссылку на программу / страницу вы хотите отлаживать переход через genwrap.php,
Например: change:
$.ajax('dir/pgm.php?param=val').done(function(data) { /* ... */
to
$.ajax('dir/genwrap.php?page=pgm.php¶m=val').done(function(data) { /* ... */
Мне не удалось найти хорошее решение, оставив файлы JAR в ~ / .m2, поэтому ответ ниже - это обходной путь, основанный на некоторых других ответах. Я буду включать дополнительные разъяснения для тех, кто новичок в PDFBox и Maven, как я.
1) Добавьте следующее в ваш файл pom.xml. Если у вас уже есть раздел <build>
и <plugins>
, просто добавьте к нему раздел <plugin>
ниже. В противном случае вам может понадобиться добавить весь приведенный ниже код в элемент <project>
:
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>**REPLACE THIS WITH THE FULL URI OF YOUR MAIN CLASS**</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-my-jar-with-dependencies</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
2) Убедитесь, что вы заменяете текст в элементе <mainClass>
в соответствии с ситуацией. Например, если ваш метод main () находится в классе App
в App.js
, а имя вашего пакета - com.example.sub
. Тогда вышеприведенный элемент должен выглядеть следующим образом:
<mainClass>com.example.sub.App</mainClass>
3) Чтобы скомпилировать ваше приложение, запустите mvn package
Примечание: я видел некоторые ссылки в Интернете, используя mvn clean compile assembly:single
вместо mvn package
, Я не уверен, какова цель этого, когда mvn package
, кажется, работает отлично для меня.
Это возьмет ваш проект и все ваши зависимости и создаст один файл JAR в целевом каталоге, называемый примерно так:
java-project-1.0-SNAPSHOT-jar-with-dependencies.jar
4) Для запуска проекта вы можете сделать это :
java -cp target/java-project-1.0-SNAPSHOT-jar-with-dependencies.jar com.example.sub.App
Убедитесь, что вы изменили вышеприведенную строку в соответствии с вашей ситуацией. Другими словами, вам может потребоваться изменить как имя файла JAR, так и имя URI для вашего основного класса.