How to Setup tomcat on ubuntu

First, please setup JAVA on your ubuntu, you can refer to :
https://lengerrong.blogspot.com/2017/03/how-to-config-oracle-java-on-your-ubuntu.html


$ wget http://mirror.apache-kr.org/tomcat/tomcat-9/v9.0.0.M22/bin/apache-tomcat-9.0.0.M22.tar.gz
$ tar xzvf apache-tomcat-9.0.0.M22.tar.gz
$ sudo cp apache-tomcat-9.0.0.M22 /var/lib/tomcat9 -rf
$ cd /var/lib/tomcat9/
$ sudo vim bin/startup.sh
# Better OS/400 detection: see Bugzilla 31132
os400=false
case "`uname`" in
OS400*) os400=true;;
esac

export JAVA_HOME=/usr/lib/jvm/java-8-oracle/
export JRE_HOME=/usr/lib/jvm/java-8-oracle/jre/
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH
export TOMCAT_HOME=/var/lib/tomcat9




Start tomcat
$ sudo bin/startup.sh


Setup your xfce desktop and vncserver for your VPS

First, let's install a desktop environment.
I chose xfce, something faster.
$ sudo apt-get install xfce4 xfce4-goodies


Second, let's install one vncserver.
$ sudo apt-get install tightvncserver

Let's configure vncserver.
Start the vncserver, and follow the directions to create a password

$ vncserver

You will require a password to access your desktops.

Password:
Verify:
xauth:  file /home/errong_leng/.Xauthority does not exist

New 'X' desktop is vvs:1

Creating default startup script /home/errong_leng/.vnc/xstartup
Starting applications specified in /home/errong_leng/.vnc/xstartup
Log file is /home/errong_leng/.vnc/vvs:1.log

$ cat .vnc/vvs\:1.log
30/06/17 05:51:52 Xvnc version TightVNC-1.3.10
30/06/17 05:51:52 Copyright (C) 2000-2009 TightVNC Group
30/06/17 05:51:52 Copyright (C) 1999 AT&T Laboratories Cambridge
30/06/17 05:51:52 All Rights Reserved.
30/06/17 05:51:52 See http://www.tightvnc.com/ for information on TightVNC
30/06/17 05:51:52 Desktop name 'X' (vvs:1)
30/06/17 05:51:52 Protocol versions supported: 3.3, 3.7, 3.8, 3.7t, 3.8t
30/06/17 05:51:52 Listening for VNC connections on TCP port 5901
Font directory '/usr/share/fonts/X11/75dpi/' not found - ignoring
Font directory '/usr/share/fonts/X11/100dpi/' not found - ignoring
xrdb: No such file or directory
xrdb: can't open file '/home/errong_leng/.Xresources'

As you can see, the TCP port is 5901.
Since I use google cloud compute engine, I have to setup a new firewall rule for this.
Let's verify external IP listen on 5901.
$ nc 146.148.82.191 5901 
RFB 003.008

Great! Everything seems ready for our VNC client to connect.
Open your VNC viewer and connect to the IP of your Compute Engine instance on port 5901.





If still not work, try :
$ sudo iptables -F

Set up Guacamole on your VPS, then you can access your VPS from anywhere, all you need to access your desktops is a web browser.

Refers :
http://guacamole.incubator.apache.org/doc/gug/installing-guacamole.html
http://guacamole.incubator.apache.org/doc/0.9.1/gug/installing-guacamole.html

My VPS is ubuntu 16.04.

1. Buiding guacamole-server from source.

install required dependencies
$ sudo apt-get install libcairo2-dev libjpeg-turbo8-dev libpng12-dev libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev libfreerdp-dev libpango1.0-dev     libssh2-1-dev     libtelnet-dev libvncserver-dev libpulse-dev  libssl-dev libvorbis-dev libwebp-dev
$ sudo apt-get install autoconf libtool

setup jdk and mav
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer
$ sudo update-java-alternatives -s java-8-oracle
$ export JAVA_HOME=/usr/lib/jvm/java-8-oracle/
$ wget http://apache.tt.co.kr/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.tar.gz
$ tar xzvf apache-maven-3.5.0-bin.tar.gz
$ export PATH=~/apache-maven-3.5.0/bin:$PATH

setup tomcat too, please refer to:
http://lengerrong.blogspot.com/2017/06/how-to-setup-tomcat-on-ubuntu.html

build
$ git clone git://github.com/apache/incubator-guacamole-server.git
$ incubator-guacamole-server
$ autoreconf -fi
$ ./configure --with-init-dir=/etc/init.d
$ make
$ sudo make install
$ sudo ldconfig

At this point, everything is installed, but guacd is not running. You will need to run guacd in order to use Guacamole once the client components are installed as well.

2.Building guacamole-client from source too.
$ git clone git://github.com/apache/incubator-guacamole-client.git
$ cd incubator-guacamole-client
$ mvn package

[INFO] guacamole-common ................................... SUCCESS [ 31.031 s]
[INFO] guacamole-ext ...................................... SUCCESS [ 15.395 s]
[INFO] guacamole-common-js ................................ SUCCESS [ 19.751 s]
[INFO] guacamole .......................................... SUCCESS [02:06 min]
[INFO] guacamole-auth-cas ................................. SUCCESS [ 27.770 s]
[INFO] guacamole-auth-duo ................................. SUCCESS [ 18.470 s]
[INFO] guacamole-auth-header .............................. SUCCESS [  7.781 s]
[INFO] guacamole-auth-jdbc ................................ SUCCESS [  0.575 s]
[INFO] guacamole-auth-jdbc-base ........................... SUCCESS [ 19.919 s]
[INFO] guacamole-auth-jdbc-mysql .......................... SUCCESS [ 15.506 s]
[INFO] guacamole-auth-jdbc-postgresql ..................... SUCCESS [ 14.984 s]
[INFO] guacamole-auth-jdbc-dist ........................... SUCCESS [  6.495 s]
[INFO] guacamole-auth-ldap ................................ SUCCESS [ 13.026 s]
[INFO] guacamole-auth-noauth .............................. SUCCESS [  7.274 s]
[INFO] guacamole-example .................................. SUCCESS [  5.699 s]
[INFO] guacamole-playback-example ......................... SUCCESS [  2.777 s]
[INFO] guacamole-client ................................... SUCCESS [ 14.757 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS


By default, VNC support will be installed as a dependency of the guacamole package. If you want SSH or RDP support, you will need to install libguac-client-ssh0 or libguac-client-rdp0 manually:
# apt-get install libguac-client-ssh0 libguac-client-rdp0
 
3. Deploying Guacamole
$ sudo mkdir /etc/guacamole
$ sudo cp guacamole/doc/example/user-mapping.xml /etc/guacamole
$ cat /etc/guacamole/guacamole.properties 
# Hostname and port of guacamole proxy
guacd-hostname: localhost
guacd-port:     4822

# Auth provider class (authenticates user/pass combination, needed if using the provided login screen)
auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
basic-user-mapping: /etc/guacamole/user-mapping.xml
$ cp guacamole/target/guacamole-0.9.12-incubating.war 
/var/lib/tomcat9/webapps/guacamole.war
$ sudo mkdir /usr/lib/tomcat9/.guacamole/
$ ln -s /etc/guacamole/guacamole.properties /usr/lib/tomcat9/.guacamole/     
$ sudo vim /etc/guacamole/user-mapping.xml 
  uncomment below content: 
    <authorize username="USERNAME" password="PASSWORD">
        <protocol>vnc</protocol>
        <param name="hostname">localhost</param>
        <param name="port">5900</param>
        <param name="password">VNCPASS</param>
    </authorize> 
 USERNAME and PASSWORD are for used for login guacamole.
 VNCPASS are the password for vncserver. 
 please modify for your case.    <authorize username="errong.leng" password="ucLinux1">
        <protocol>vnc</protocol>
        <param name="hostname">localhost</param>
        <param name="port">5901</param>
        <param name="password">ucLinux1</param>
    </authorize> 



4. Start guacd and tocmat
$ sudo /etc/init.d/guacd restart
$ sudo /var/lib/tomcat9/bin/startup.sh

OK. everything is done.
let's access via web browser.
 
 
 
 sudo apt-get install guacamole-tomcat 
by the way, since I use google cloud compute engine.
And tomcat use 8080 as default port, so we have to add a new firewall policy.
 
 
Important : You have to setup vncserver on your VPS first, since guacamole does not include it.
please refer to :
https://lengerrong.blogspot.com/2017/06/setup-your-xfce-desktop-and-vncserver.html

After you login, your desktop will show in your browser.


 




How to fix compile error on VPS : virtual memory exhausted: Cannot allocate memory

The root cause is no swap on your vps.
Let's mkswap by ourself.

errong_leng@vvs:~$ sudo su -
root@vvs:~# umask 077
root@vvs:~# mkdir /usr/img/
root@vvs:~# dd if=/dev/zero of=/usr/img/swap bs=1024 count=2048000
2048000+0 records in
2048000+0 records out
2097152000 bytes (2.1 GB, 2.0 GiB) copied, 54.9435 s, 38.2 MB/s
root@vvs:~#  mkswap /usr/img/swap      
Setting up swapspace version 1, size = 2 GiB (2097147904 bytes)
no label, UUID=c435f1d9-9b3a-40a8-8624-b7a09adca9d5
root@vvs:~# swapon /usr/img/swap

Once you do not need swap, you can delete it.
Since it will use about 2G of your vps disk.
#swapoff /usr/img/swap
#rm /usr/img -rf
这是要应验先知以赛亚的话,说: (马太福音 12:17 和合本)
This was to fulfill what was spoken through the prophet Isaiah:  (Matthew 12:17 NIV)
看哪!我的仆人,我所拣选、所亲爱、心里所喜悦的,我要将我的灵赐给他;他必将公理传给外邦。 (马太福音 12:18 和合本)
“Here is my servant whom I have chosen, the one I love, in whom I delight; I will put my Spirit on him, and he will proclaim justice to the nations.  (Matthew 12:18 NIV)
他不争竞,不喧嚷;街上也没有人听见他的声音。 (马太福音 12:19 和合本)
He will not quarrel or cry out; no one will hear his voice in the streets.  (Matthew 12:19 NIV)
压伤的芦苇,他不折断;将残的灯火,他不吹灭;等他施行公理,叫公理得胜。 (马太福音 12:20 和合本)
A bruised reed he will not break, and a smoldering wick he will not snuff out, till he has brought justice through to victory.  (Matthew 12:20 NIV)
外邦人都要仰望他的名。 (马太福音 12:21 和合本)
In his name the nations will put their hope.”  (Matthew 12:21 NIV)


那时,耶稣说:“父啊,天地的主,我感谢你!因为你将这些事向聪明通达人就藏起来,向婴孩就显出来。  (马太福音 11:25 和合本)
At that time Jesus said, “I praise you, Father, Lord of heaven and earth, because you have hidden these things from the wise and learned, and revealed them to little children. (Matthew 11:25 NIV)
父啊,是的,因为你的美意本是如此。  (马太福音 11:26 和合本)
Yes, Father, for this is what you were pleased to do. (Matthew 11:26 NIV)
一切所有的,都是我父交付我的;除了父,没有人知道子;除了子和子所愿意指示的,没有人知道父。  (马太福音 11:27 和合本)
“All things have been committed to me by my Father. No one knows the Son except the Father, and no one knows the Father except the Son and those to whom the Son chooses to reveal him. (Matthew 11:27 NIV)
凡劳苦担重担的人可以到我这里来,我就使你们得安息。  (马太福音 11:28 和合本)
“Come to me, all you who are weary and burdened, and I will give you rest. (Matthew 11:28 NIV)
我心里柔和谦卑,你们当负我的轭,学我的样式;这样,你们心里就必得享安息。  (马太福音 11:29 和合本)
Take my yoke upon you and learn from me, for I am gentle and humble in heart, and you will find rest for your souls. (Matthew 11:29 NIV)
因为我的轭是容易的,我的担子是轻省的。” (马太福音 11:30 和合本)
For my yoke is easy and my burden is light.” (Matthew 11:30 NIV)


务要寻求 神

“你们祈求,就给你们;寻找,就寻见;叩门,就给你们开门。 (马太福音 7:7 和合本)
“Ask and it will be given to you; seek and you will find; knock and the door will be opened to you. (Matthew 7:7 NIV)
因为凡祈求的,就得着;寻找的,就寻见;叩门的,就给他开门。 (马太福音 7:8 和合本)
For everyone who asks receives; the one who seeks finds; and to the one who knocks, the door will be opened. (Matthew 7:8 NIV)
你们虽然不好,尚且知道拿好东西给儿女,何况你们在天上的父,岂不更把好东西给求他的人吗? (马太福音 7:11 和合本)
If you, then, though you are evil, know how to give good gifts to your children, how much more will your Father in heaven give good gifts to those who ask him! (Matthew 7:11 NIV)
所以,无论何事,你们愿意人怎样待你们,你们也要怎样待人,因为这就是律法和先知的道理。” (马太福音 7:12 和合本)
So in everything, do to others what you would have them do to you, for this sums up the Law and the Prophets. (Matthew 7:12 NIV)
“你们要进窄门。因为引到灭亡,那门是宽的,路是大的,进去的人也多; (马太福音 7:13 和合本)
“Enter through the narrow gate. For wide is the gate and broad is the road that leads to destruction, and many enter through it. (Matthew 7:13 NIV)
引到永生,那门是窄的,路是小的,找着的人也少。” (马太福音 7:14 和合本)
But small is the gate and narrow the road that leads to life, and only a few find it. (Matthew 7:14 NIV)


务要完全

“你们听见有话说:‘当爱你的邻舍,恨你的仇敌。’ (马太福音 5:43 和合本)
“You have heard that it was said, ‘Love your neighbor and hate your enemy.’ (Matthew 5:43 NIV)
只是我告诉你们,要爱你们的仇敌,为那逼迫你们的祷告。 (马太福音 5:44 和合本)
But I tell you, love your enemies and pray for those who persecute you, (Matthew 5:44 NIV)
这样就可以作你们天父的儿子;因为他叫日头照好人,也照歹人;降雨给义人,也给不义的人。 (马太福音 5:45 和合本)
that you may be children of your Father in heaven. He causes his sun to rise on the evil and the good, and sends rain on the righteous and the unrighteous. (Matthew 5:45 NIV)
你们若单爱那爱你们的人,有什么赏赐呢?就是税吏不也是这样行吗? (马太福音 5:46 和合本)
If you love those who love you, what reward will you get? Are not even the tax collectors doing that? (Matthew 5:46 NIV)
你们若单请你弟兄的安,比人有什么长处呢?就是外邦人不也是这样行吗? (马太福音 5:47 和合本)
And if you greet only your own people, what are you doing more than others? Do not even pagans do that? (Matthew 5:47 NIV)
所以,你们要完全,像你们的天父完全一样。” (马太福音 5:48 和合本)
Be perfect, therefore, as your heavenly Father is perfect. (Matthew 5:48 NIV)


不要忧虑

“所以我告诉你们,不要为生命忧虑吃什么,喝什么;为身体忧虑穿什么。生命不胜于饮食吗?身体不胜于衣裳吗? (马太福音 6:25 和合本)
“Therefore I tell you, do not worry about your life, what you will eat or drink; or about your body, what you will wear. Is not life more than food, and the body more than clothes? (Matthew 6:25 NIV)
你们看那天上的飞鸟,也不种,也不收,也不积蓄在仓里,你们的天父尚且养活它。你们不比飞鸟贵重得多吗? (马太福音 6:26 和合本)
Look at the birds of the air; they do not sow or reap or store away in barns, and yet your heavenly Father feeds them. Are you not much more valuable than they? (Matthew 6:26 NIV)
你们哪一个能用思虑使寿数多加一刻呢(或译:使身量多加一肘呢) ? (马太福音 6:27 和合本)
Can any one of you by worrying add a single hour to your life ? (Matthew 6:27 NIV)
何必为衣裳忧虑呢?你想野地里的百合花怎么长起来;它也不劳苦,也不纺线。 (马太福音 6:28 和合本)
“And why do you worry about clothes? See how the flowers of the field grow. They do not labor or spin. (Matthew 6:28 NIV)
然而我告诉你们,就是所罗门极荣华的时候,他所穿戴的,还不如这花一朵呢! (马太福音 6:29 和合本)
Yet I tell you that not even Solomon in all his splendor was dressed like one of these. (Matthew 6:29 NIV)
你们这小信的人哪!野地里的草今天还在,明天就丢在炉里, 神还给它这样的妆饰,何况你们呢! (马太福音 6:30 和合本)
If that is how God clothes the grass of the field, which is here today and tomorrow is thrown into the fire, will he not much more clothe you—you of little faith? (Matthew 6:30 NIV)
所以,不要忧虑说,吃什么?喝什么?穿什么? (马太福音 6:31 和合本)
So do not worry, saying, ‘What shall we eat?’ or ‘What shall we drink?’ or ‘What shall we wear?’ (Matthew 6:31 NIV)
这都是外邦人所求的。你们需用的这一切东西,你们的天父是知道的。 (马太福音 6:32 和合本)
For the pagans run after all these things, and your heavenly Father knows that you need them. (Matthew 6:32 NIV)
你们要先求他的国和他的义,这些东西都要加给你们了。 (马太福音 6:33 和合本)
But seek first his kingdom and his righteousness, and all these things will be given to you as well. (Matthew 6:33 NIV)
所以,不要为明天忧虑,因为明天自有明天的忧虑;一天的难处一天当就够了。” (马太福音 6:34 和合本)
Therefore do not worry about tomorrow, for tomorrow will worry about itself. Each day has enough trouble of its own. (Matthew 6:34 NIV)


虚心的人有福了!因为天国是他们的。 (马太福音 5:3 和合本)
“Blessed are the poor in spirit, for theirs is the kingdom of heaven. (Matthew 5:3 NIV)
哀恸的人有福了!因为他们必得安慰。 (马太福音 5:4 和合本)
Blessed are those who mourn, for they will be comforted. (Matthew 5:4 NIV)
温柔的人有福了!因为他们必承受地土。 (马太福音 5:5 和合本)
Blessed are the meek, for they will inherit the earth. (Matthew 5:5 NIV)
饥渴慕义的人有福了!因为他们必得饱足。 (马太福音 5:6 和合本)
Blessed are those who hunger and thirst for righteousness, for they will be filled. (Matthew 5:6 NIV)
怜恤人的人有福了!因为他们必蒙怜恤。 (马太福音 5:7 和合本)
Blessed are the merciful, for they will be shown mercy. (Matthew 5:7 NIV)
清心的人有福了!因为他们必得见 神。 (马太福音 5:8 和合本)
Blessed are the pure in heart, for they will see God. (Matthew 5:8 NIV)
使人和睦的人有福了!因为他们必称为 神的儿子。 (马太福音 5:9 和合本)
Blessed are the peacemakers, for they will be called children of God. (Matthew 5:9 NIV)
为义受逼迫的人有福了!因为天国是他们的。 (马太福音 5:10 和合本)
Blessed are those who are persecuted because of righteousness, for theirs is the kingdom of heaven. (Matthew 5:10 NIV)



主耶稣也受试探 却从没犯罪

耶稣却回答说:“经上记着说:人活着,不是单靠食物,乃是靠 神口里所出的一切话。” (马太福音 4:4 和合本)
Jesus answered, “It is written: ‘Man shall not live on bread alone, but on every word that comes from the mouth of God.’ ” (Matthew 4:4 NIV)
耶稣对他说:“经上又记着说:‘不可试探主—你的 神。’”  (马太福音 4:7 和合本)
Jesus answered him, “It is also written: ‘Do not put the Lord your God to the test.’ ” (Matthew 4:7 NIV)
耶稣说:“撒但(就是抵挡的意思,乃魔鬼的别名) ,退去吧!因为经上记着说:当拜主—你的 神,单要事奉他。” (马太福音 4:10 和合本)
Jesus said to him, “Away from me, Satan! For it is written: ‘Worship the Lord your God, and serve him only.’ ” (Matthew 4:10 NIV)


亚伯拉罕的后裔,大卫的子孙(后裔,子孙:原文是儿子;下同) ,耶稣基督的家谱: (马太福音 1:1 和合本)
This is the genealogy of Jesus the Messiah the son of David, the son of Abraham:  (Matthew 1:1 NIV)
亚伯拉罕生以撒;以撒生雅各;雅各生犹大和他的弟兄;  (马太福音 1:2 和合本)
Abraham was the father of Isaac, Isaac the father of Jacob, Jacob the father of Judah and his brothers,  (Matthew 1:2 NIV)
犹大从她玛氏生法勒斯和谢拉;法勒斯生希斯仑;希斯仑生亚兰;  (马太福音 1:3 和合本)
Judah the father of Perez and Zerah, whose mother was Tamar, Perez the father of Hezron, Hezron the father of Ram,  (Matthew 1:3 NIV)
亚兰生亚米拿达;亚米拿达生拿顺;拿顺生撒门;  (马太福音 1:4 和合本)
Ram the father of Amminadab, Amminadab the father of Nahshon, Nahshon the father of Salmon,  (Matthew 1:4 NIV)
撒门从喇合氏生波阿斯;波阿斯从路得氏生俄备得;俄备得生耶西;  (马太福音 1:5 和合本)
Salmon the father of Boaz, whose mother was Rahab, Boaz the father of Obed, whose mother was Ruth, Obed the father of Jesse,  (Matthew 1:5 NIV)
耶西生大卫王。大卫从乌利亚的妻子生所罗门;  (马太福音 1:6 和合本)
and Jesse the father of King David. David was the father of Solomon, whose mother had been Uriah’s wife,  (Matthew 1:6 NIV)
所罗门生罗波安;罗波安生亚比雅;亚比雅生亚撒;  (马太福音 1:7 和合本)
Solomon the father of Rehoboam, Rehoboam the father of Abijah, Abijah the father of Asa,  (Matthew 1:7 NIV)
亚撒生约沙法;约沙法生约兰; 约兰生乌西雅;  (马太福音 1:8 和合本)
Asa the father of Jehoshaphat, Jehoshaphat the father of Jehoram, Jehoram the father of Uzziah,  (Matthew 1:8 NIV)
乌西雅生约坦;约坦生亚哈斯;亚哈斯生希西家;  (马太福音 1:9 和合本)
Uzziah the father of Jotham, Jotham the father of Ahaz, Ahaz the father of Hezekiah,  (Matthew 1:9 NIV)
希西家生玛拿西;玛拿西生亚们;亚们生约西亚;  (马太福音 1:10 和合本)
Hezekiah the father of Manasseh, Manasseh the father of Amon, Amon the father of Josiah,  (Matthew 1:10 NIV)
百姓被迁到巴比伦的时候,约西亚生耶哥尼雅和他的弟兄。 (马太福音 1:11 和合本)
and Josiah the father of Jeconiah and his brothers at the time of the exile to Babylon.  (Matthew 1:11 NIV)
迁到巴比伦之后,耶哥尼雅生撒拉铁;撒拉铁生所罗巴伯;  (马太福音 1:12 和合本)
After the exile to Babylon: Jeconiah was the father of Shealtiel, Shealtiel the father of Zerubbabel,  (Matthew 1:12 NIV)
所罗巴伯生亚比玉;亚比玉生以利亚敬;以利亚敬生亚所;  (马太福音 1:13 和合本)
Zerubbabel the father of Abihud, Abihud the father of Eliakim, Eliakim the father of Azor,  (Matthew 1:13 NIV)
亚所生撒督;撒督生亚金;亚金生以律;  (马太福音 1:14 和合本)
Azor the father of Zadok, Zadok the father of Akim, Akim the father of Elihud,  (Matthew 1:14 NIV)
以律生以利亚撒;以利亚撒生马但;马但生雅各;  (马太福音 1:15 和合本)
Elihud the father of Eleazar, Eleazar the father of Matthan, Matthan the father of Jacob,  (Matthew 1:15 NIV)
雅各生约瑟,就是马利亚的丈夫。那称为基督的耶稣是从马利亚生的。 (马太福音 1:16 和合本)
and Jacob the father of Joseph, the husband of Mary, and Mary was the mother of Jesus who is called the Messiah.  (Matthew 1:16 NIV)


虽然无花果树不发旺,葡萄树不结果,橄榄树也不效力,田地不出粮食,圈中绝了羊,棚内也没有牛; (哈巴谷书 3:17 和合本)
Though the fig tree does not bud and there are no grapes on the vines, though the olive crop fails and the fields produce no food, though there are no sheep in the pen and no cattle in the stalls,  (Habakkuk 3:17 NIV)
然而,我要因耶和华欢欣,因救我的 神喜乐。 (哈巴谷书 3:18 和合本)
yet I will rejoice in the Lord , I will be joyful in God my Savior.  (Habakkuk 3:18 NIV)
主耶和华是我的力量;他使我的脚快如母鹿的蹄,又使我稳行在高处。这歌交与伶长,用丝弦的乐器。 (哈巴谷书 3:19 和合本)
The Sovereign Lord is my strength; he makes my feet like the feet of a deer, he enables me to tread on the heights. For the director of music. On my stringed instruments.  (Habakkuk 3:19 NIV)


伯利恒的以法他啊,你在犹大诸城中为小,将来必有一位从你那里出来,在以色列中为我作掌权的;他的根源从亘古,从太初就有。 (弥迦书 5:2 和合本)
“But you, Bethlehem Ephrathah, though you are small among the clans of Judah, out of you will come for me one who will be ruler over Israel, whose origins are from of old, from ancient times.”  (Micah 5:2 NIV)
耶和华必将以色列人交付敌人,直等那生产的妇人生下子来。那时掌权者(原文是他) 其余的弟兄必归到以色列人那里。 (弥迦书 5:3 和合本)
Therefore Israel will be abandoned until the time when she who is in labor bears a son, and the rest of his brothers return to join the Israelites.  (Micah 5:3 NIV)
他必起来,倚靠耶和华的大能,并耶和华—他 神之名的威严,牧养他的羊群。他们要安然居住;因为他必日见尊大,直到地极。 (弥迦书 5:4 和合本)
He will stand and shepherd his flock in the strength of the Lord , in the majesty of the name of the Lord his God. And they will live securely, for then his greatness will reach to the ends of the earth.  (Micah 5:4 NIV)

末后的日子,耶和华殿的山必坚立,超乎诸山,高举过于万岭;万民都要流归这山。 (弥迦书 4:1 和合本)
 In the last days the mountain of the Lord ’s temple will be established as the highest of the mountains; it will be exalted above the hills, and peoples will stream to it.  (Micah 4:1 NIV)
必有许多国的民前往,说:来吧,我们登耶和华的山,奔雅各 神的殿。主必将他的道教训我们;我们也要行他的路。因为训诲必出于锡安;耶和华的言语必出于耶路撒冷。 (弥迦书 4:2 和合本)
Many nations will come and say, “Come, let us go up to the mountain of the Lord , to the temple of the God of Jacob. He will teach us his ways, so that we may walk in his paths.” The law will go out from Zion, the word of the Lord from Jerusalem.  (Micah 4:2 NIV)
他必在多国的民中施行审判,为远方强盛的国断定是非。他们要将刀打成犁头,把枪打成镰刀。这国不举刀攻击那国;他们也不再学习战事。 (弥迦书 4:3 和合本)
He will judge between many peoples and will settle disputes for strong nations far and wide. They will beat their swords into plowshares and their spears into pruning hooks. Nation will not take up sword against nation, nor will they train for war anymore.  (Micah 4:3 NIV)
人人都要坐在自己葡萄树下和无花果树下,无人惊吓。这是万军之耶和华亲口说的。 (弥迦书 4:4 和合本)
Everyone will sit under their own vine and under their own fig tree, and no one will make them afraid, for the Lord Almighty has spoken.  (Micah 4:4 NIV)


约拿的悔改祷告



说:我遭遇患难求告耶和华,你就应允我;从阴间的深处呼求,你就俯听我的声音。 (约拿书 2:2 和合本)
He said: “In my distress I called to the Lord , and he answered me. From deep in the realm of the dead I called for help, and you listened to my cry.  (Jonah 2:2 NIV)
你将我投下深渊,就是海的深处;大水环绕我,你的波浪洪涛都漫过我身。 (约拿书 2:3 和合本)
You hurled me into the depths, into the very heart of the seas, and the currents swirled about me; all your waves and breakers swept over me.  (Jonah 2:3 NIV)
我说:我从你眼前虽被驱逐,我仍要仰望你的圣殿。 (约拿书 2:4 和合本)
I said, ‘I have been banished from your sight; yet I will look again toward your holy temple.’  (Jonah 2:4 NIV)
诸水环绕我,几乎淹没我;深渊围住我;海草缠绕我的头。 (约拿书 2:5 和合本)
The engulfing waters threatened me, the deep surrounded me; seaweed was wrapped around my head.  (Jonah 2:5 NIV)
我下到山根,地的门将我永远关住。耶和华—我的 神啊,你却将我的性命从坑中救出来。 (约拿书 2:6 和合本)
To the roots of the mountains I sank down; the earth beneath barred me in forever. But you, Lord my God, brought my life up from the pit.  (Jonah 2:6 NIV)
我心在我里面发昏的时候,我就想念耶和华。我的祷告进入你的圣殿,达到你的面前。 (约拿书 2:7 和合本)
“When my life was ebbing away, I remembered you, Lord , and my prayer rose to you, to your holy temple.  (Jonah 2:7 NIV)
那信奉虚无之神的人,离弃怜爱他们的主; (约拿书 2:8 和合本)
“Those who cling to worthless idols turn away from God’s love for them.  (Jonah 2:8 NIV)
但我必用感谢的声音献祭与你。我所许的愿,我必偿还。救恩出于耶和华。 (约拿书 2:9 和合本)
But I, with shouts of grateful praise, will sacrifice to you. What I have vowed I will make good. I will say, ‘Salvation comes from the Lord .’ ”  (Jonah 2:9 NIV)


fixed: embedded-redis: Unable to run on macOS Sonoma

Issue you might see below error while trying to run embedded-redis for your testing on your macOS after you upgrade to Sonoma. java.la...