Да, чтобы запустить банку, она должна существовать.
При его создании вам необходимо сопоставить структуру каталогов с структурой пакета.
Например, ваши каталоги могут быть:
/home/ellen/proj/java/foo/example/src/example/Foo.java
/home/ellen/proj/java/foo/example/src/example/util/MyList.java
для источников и для файлов классов:
/home/ellen/proj/java/foo/example/classes/example/Foo.class
/home/ellen/proj/java/foo/example/classes/example/util/MyList.class
(часто вы находите классы в a ../bin/ .. вместо ../classes/ .. именованная папка или исходные файлы и файлы классов смешиваются в одних и тех же каталогах)
, соответствующих структуре пакета:
, то вы должны перейти в базовый каталог иерархии:
cd /home/ellen/proj/java/foo/example/classes
или установить его с параметром -C jar -C /home/ellen/proj/java/foo/example/classes ... или из исходного jar -C proj/java/foo/example/classes ... в качестве относительного пути.
Вы создаете файл jar, например:
jar -cf example.jar *.class
и проверяете его с помощью:
jar -tf example.jar
Обратите внимание, что есть файл манифеста, автоматически сгенерированный и полезный, в качестве шаблона, где вы можете добавить информацию о том, что ваш основной класс, если у вас есть такой, но который довольно строгий в отношении синтаксиса (верхний / нижний регистр, разрывы строк).
Manifest-Version: 1.0
Created-By: 9-internal (Oracle Corporation)
Main-Class: example.Main
Такая запись основного класса должна быть добавлена, если вы хотите запустить ее без указания основного класса:
java -jar example.jar
, иначе вы должны использовать: [ ! d12]
java -cp example.jar example.Main
По существу, файл jar представляет собой zip-архив и может работать с этими инструментами.
Чистое разделение src / и bin / files полезно, когда вы имеют более чем несколько классов и, возможно, глубокую структуру пакетов.
jar -cf example.jar -C classes .
будет тогда, начиная с классов каталога / включать все, что часто вам нужно. (пример / класс, пример / util / .class, example / net / * class ...)
jar --help
информирует вас о синтаксисе.
A time, который работает с командами и переменной SECONDS, являются одновременно функциями bash, а не sh. С помощью sh вы можете получить метки времени в двух точках, используя команду date, а затем получить разницу. date +%s даст время в секундах с эпохи.
# timer start
start=$(date +%s)
/bin/egrep -v "^#|^$" $BLOCKEDIPS_XS | while IFS= read -r ip
do
# Append everything to droplist
$IPTABLES -A droplist -i eth0 -s $ip -j LOG --log-prefix " Drop IP List blockxs "
$IPTABLES -A droplist -i eth0 -s $ip -j DROP
done <"$BLOCKEDIPS_XS"
# timer stops, shows elapsed time
echo $(( $(date +%s) - start ))
A time, который работает с командами и переменной SECONDS, являются одновременно функциями bash, а не sh. С помощью sh вы можете получить метки времени в двух точках, используя команду date, а затем получить разницу. date +%s даст время в секундах с эпохи.
# timer start
start=$(date +%s)
/bin/egrep -v "^#|^$" $BLOCKEDIPS_XS | while IFS= read -r ip
do
# Append everything to droplist
$IPTABLES -A droplist -i eth0 -s $ip -j LOG --log-prefix " Drop IP List blockxs "
$IPTABLES -A droplist -i eth0 -s $ip -j DROP
done <"$BLOCKEDIPS_XS"
# timer stops, shows elapsed time
echo $(( $(date +%s) - start ))
A time, который работает с командами и переменной SECONDS, являются одновременно функциями bash, а не sh. С помощью sh вы можете получить метки времени в двух точках, используя команду date, а затем получить разницу. date +%s даст время в секундах с эпохи.
# timer start
start=$(date +%s)
/bin/egrep -v "^#|^$" $BLOCKEDIPS_XS | while IFS= read -r ip
do
# Append everything to droplist
$IPTABLES -A droplist -i eth0 -s $ip -j LOG --log-prefix " Drop IP List blockxs "
$IPTABLES -A droplist -i eth0 -s $ip -j DROP
done <"$BLOCKEDIPS_XS"
# timer stops, shows elapsed time
echo $(( $(date +%s) - start ))
Вы можете временно использовать скрипт bash, используя группировку команд
#!/bin/bash
echo "foo"
sleep 1
time {
sleep 2
echo "bar"
sleep 3
}
sleep 1
echo "baz"
Пример
$ ./somescript.sh
foo
bar
real 0m5.006s
user 0m0.005s
sys 0m0.001s
baz
Группировка с подоболочкой (т.е. скобки вместо брекетов) должна тоже произведение.
Самый простой способ - поместить команду time перед запущенной командой. Например:
$ time locate display-auto
/etc/cron.d/display-auto-brightness
/home/rick/Downloads/display-auto-brightness
/home/rick/Pictures/display-auto-brightness conky.png
/home/rick/Pictures/display-auto-brightness systray.png
/home/rick/Pictures/display-auto-brightness-config 1.png
/home/rick/Pictures/ps display-auto-brightness.png
/lib/systemd/system-sleep/display-auto-brightness
/mnt/e/etc/cron.d/display-auto-brightness
/mnt/e/lib/systemd/system-sleep/display-auto-brightness
/mnt/e/usr/local/bin/display-auto-brightness
/usr/local/bin/display-auto-brightness
real 0m0.826s
user 0m0.803s
sys 0m0.016s
Мы используем команду locate для поиска всех имен файлов с display-auto в именах. Просто добавьте команду time перед командой.
Вы можете использовать переменную $SECONDS внутри вашей чтобы получить время для его части. Например:
SECONDS=0
/bin/egrep -v "^#|^$" $BLOCKEDIPS_XS | while IFS= read -r ip
do
# Append everything to droplist
$IPTABLES -A droplist -i eth0 -s $ip -j LOG --log-prefix " Drop IP List blockxs "
$IPTABLES -A droplist -i eth0 -s $ip -j DROP
done <"$BLOCKEDIPS_XS"
timer stops, shows elapsed time
BlockTime=$SECONDS
echo "Total time to block IPs: $BlockTime Seconds"
В этом коде SECONDS сбрасывается на ноль, а затем получается после продолжительного процесса.
Вы можете временно использовать скрипт bash, используя группировку команд
#!/bin/bash
echo "foo"
sleep 1
time {
sleep 2
echo "bar"
sleep 3
}
sleep 1
echo "baz"
Пример
$ ./somescript.sh
foo
bar
real 0m5.006s
user 0m0.005s
sys 0m0.001s
baz
Группировка с подоболочкой (т.е. скобки вместо брекетов) должна тоже произведение.
Самый простой способ - поместить команду time перед запущенной командой. Например:
$ time locate display-auto
/etc/cron.d/display-auto-brightness
/home/rick/Downloads/display-auto-brightness
/home/rick/Pictures/display-auto-brightness conky.png
/home/rick/Pictures/display-auto-brightness systray.png
/home/rick/Pictures/display-auto-brightness-config 1.png
/home/rick/Pictures/ps display-auto-brightness.png
/lib/systemd/system-sleep/display-auto-brightness
/mnt/e/etc/cron.d/display-auto-brightness
/mnt/e/lib/systemd/system-sleep/display-auto-brightness
/mnt/e/usr/local/bin/display-auto-brightness
/usr/local/bin/display-auto-brightness
real 0m0.826s
user 0m0.803s
sys 0m0.016s
Мы используем команду locate для поиска всех имен файлов с display-auto в именах. Просто добавьте команду time перед командой.
Вы можете использовать переменную $SECONDS внутри вашей чтобы получить время для его части. Например:
SECONDS=0
/bin/egrep -v "^#|^$" $BLOCKEDIPS_XS | while IFS= read -r ip
do
# Append everything to droplist
$IPTABLES -A droplist -i eth0 -s $ip -j LOG --log-prefix " Drop IP List blockxs "
$IPTABLES -A droplist -i eth0 -s $ip -j DROP
done <"$BLOCKEDIPS_XS"
timer stops, shows elapsed time
BlockTime=$SECONDS
echo "Total time to block IPs: $BlockTime Seconds"
В этом коде SECONDS сбрасывается на ноль, а затем получается после продолжительного процесса.
Вы можете временно использовать скрипт bash, используя группировку команд
#!/bin/bash
echo "foo"
sleep 1
time {
sleep 2
echo "bar"
sleep 3
}
sleep 1
echo "baz"
Пример
$ ./somescript.sh
foo
bar
real 0m5.006s
user 0m0.005s
sys 0m0.001s
baz
Группировка с подоболочкой (т.е. скобки вместо брекетов) должна тоже произведение.
Самый простой способ - поместить команду time перед запущенной командой. Например:
$ time locate display-auto
/etc/cron.d/display-auto-brightness
/home/rick/Downloads/display-auto-brightness
/home/rick/Pictures/display-auto-brightness conky.png
/home/rick/Pictures/display-auto-brightness systray.png
/home/rick/Pictures/display-auto-brightness-config 1.png
/home/rick/Pictures/ps display-auto-brightness.png
/lib/systemd/system-sleep/display-auto-brightness
/mnt/e/etc/cron.d/display-auto-brightness
/mnt/e/lib/systemd/system-sleep/display-auto-brightness
/mnt/e/usr/local/bin/display-auto-brightness
/usr/local/bin/display-auto-brightness
real 0m0.826s
user 0m0.803s
sys 0m0.016s
Мы используем команду locate для поиска всех имен файлов с display-auto в именах. Просто добавьте команду time перед командой.
Вы можете использовать переменную $SECONDS внутри вашей чтобы получить время для его части. Например:
SECONDS=0
/bin/egrep -v "^#|^$" $BLOCKEDIPS_XS | while IFS= read -r ip
do
# Append everything to droplist
$IPTABLES -A droplist -i eth0 -s $ip -j LOG --log-prefix " Drop IP List blockxs "
$IPTABLES -A droplist -i eth0 -s $ip -j DROP
done <"$BLOCKEDIPS_XS"
timer stops, shows elapsed time
BlockTime=$SECONDS
echo "Total time to block IPs: $BlockTime Seconds"
В этом коде SECONDS сбрасывается на ноль, а затем получается после продолжительного процесса.