- (看的韩顺平的课)JAVA基础(初级)
foreseebegin
java开发语言后端
一、如何快速学习需要框架细节二、JDKJRE是什么(区别)?JDKJDk(开发人员使用)=JRE+开发工具集(eg:Javac,Java编译工具)JREJRE(仅使用)=JVM+JavaSE标准类库编译器!=JVM三、运行机制执行流程.java(源文件)---编译javac--->.class(字节码文件)-----运行Java----->结果注:使用Java命令行运行时,注意不写.class.c
- vscode开发java项目
怪力左手
安装与配置vscodejavaide
安装java扩展创建项目vscode命令行面板搜索java命令行出现如下提示Nobuildtools构建项目如下java项目使用vscode单独打开文件夹(工作区中运行有问题),vscode中可直接点击右上角运行按钮执行maven中springboot项目代码错误可以点击弹出来的"灯泡"提示修复(vscode单独打开项目目录,否则没有提示)依赖可以在maven中直接搜索下载javafx项目执行如下
- Java命令行编译、打包与执行参考命令
dkgee
javapycharm开发语言
#编译(多个jar包,用英文冒号分隔,多级包目录也可以编译打包,例如com/sun/test/xxx.java)javac-classpath./jna-5.5.0.jar:xxx.jar:xxxx.jar./test/*.java#Java文件中的包引用路径为packagecom.sun.test;javac-classpath./jna-5.5.0.jar:xxx.jar:xxxx.jar./
- 关于java命令行传参
落满樱花的羊
java开发语言
关于java命令行传参本篇文章拓展以下java中的命令行传参有时候你希望运行一个程序的时候再传递给它消息,这要靠传递命令行参数给main()方法来实现。首先我们先来创建一个数组遍历。publicclassDemo{publicstaticvoidmain(String[]args){//args.length数组长度for(inti=0;i
- [1250]python调用java代码的工具jpype
周小董
Python前行者pythonjava
文章目录jpype简介安装使用小试牛刀使用命令行方式打jar包调用jar包方法问题1:shutdownJVM停止后restart失败的情况问题2:只能调用静态方法问题3:调用其他包方法调用jar包main方法java命令行方式运行jar包python使用jpype导入多个Jar的异常问题jpype简介JPype是一个能够让python代码方便地调用Java代码的工具,从而克服了python在某些领
- java 引用 jar包_java命令行引用jar包的方法
我爱香菜
java引用jar包
java命令行引用jar包的方法java命令行怎么引用jar包?jar包有哪些常用方法?下面跟yjbys小编一起来学习一下,希望对大家学习java语言有帮助!一般情况下:如果java文件和jar包在同一目录编译:D:\wangyu>javac-cpxalan.jarTest.java执行:D:\wangyu>java-classpathxalan.jar;Test如果java文件和jar包不在同一
- 笔记 Java命令行添加Manifest,并生成API文档步骤
从零开始的智障生活
javajar
1.代码及编译在一个文件夹mypackage下新建一个HelloWorld.javapackagemypackage;publicclassHelloWorld{privateStringworld="nihao";publicvoidsay(){System.out.println("Hello"+world+"!");}publicstaticvoidmain(String[]args){He
- jpype的使用
chenchen_nini
随意写python
目录1、安装(1)如何确认自己java是多少位的?(2)如何确认自己python是多少位的?(3)安装jpype2、使用(1)小试牛刀(2)调用jar包方法问题1:shutdownJVM停止后restart失败的情况问题2:只能调用静态方法问题3:调用其他包方法(3)调用jar包main方法问题1:怎么处理入参是中文问题2:java命令行方式运行jar包1、安装注意点:python和java的位数
- windows查看java进程信息
西北码农
异常处理javawindowstomcat
1.背景,想知道正在运行的Java进程属于那个服务详细信息是什么2.操作windows查看java进程信息,可以显示出java命令行参数,查看tomcat等应用的位置wmicprocesswherecaption="java.exe"getprocessid,caption,commandline/value3.关于如何查看端口是否被占用,可以根据以下步骤来操作:3.1开始---->运行---->
- java命令行利用libreoffice将office文档转换为pdf文件失败的解决方案
VOSTAR
Javalibreofficejavacommand
原因:libreoffice同时只支持两个文档转换的命令行,多于两个的命令行不会进行文档转换。解决方案:在线程池的线程中,利用java阻塞队列BlockingQueue,设置容量为2,同时只允许两个转换任务跑。注意事项:命令行执行完毕和文档转换完成是两个概念,命令行执行完毕之后过一段时间文档才会转换完毕,这个时间差由文件大小决定,代码中能拿到命令行执行的状态,pdf文件转没转成功还需要判断文件存不
- Java命令行监控工具(jmap,jstack,jstat,jinfo,jps)
Real_man
项目部署上线之后,线上项目是不能轻易修改的,定位问题的难度也会变大。因此监控是非常重要的一个环节,有了监控,我们才能更好的定位系统中的问题,从而排查。监控的工具有很多种,但是java自带的命令行监控工具,是必须要掌握的。jps查看系统中jvm进程,其它的命令通常先使用jps查看进程号,然后在根据线程号获取jvm进程信息image.pngjps-m查看jvm进程并且带有参数查看jps-v查看传递到j
- java命令行参数解析_Java中命令行参数解析
左丘子仲
java命令行参数解析
Apache.Commons.CLITheApacheCommonsCLIlibraryprovidesanAPIforparsingcommandlineoptionspassedtoprograms.It'salsoabletoprinthelpmessagesdetailingtheoptionsavailableforacommandlinetool.CommonsCLIsupportsd
- java命令行运行 classnotfound,运行java -jar时的java.lang.ClassNotFoundException
717542177
java命令行运行classnotfound
I'musinganttobuildmybuild.xmlfile,itcompilesok,butthengettingaruntimejava.lang.NoClassDefFoundErrorwhenrunningtheresultingjarvia"java-jarmy_jar.jar".Itseemslikethiscomesupalotbutnoneoftherelatedquesti
- JavaAgent简介
费曼乐园
Javajavajvm
JavaAgent是一种Java技术,它允许在Java应用程序运行时修改字节码。它可以被用来监视和调试应用程序,也可以用于性能优化、安全检查等方面。JavaAgent通常作为一个独立的JAR文件加载到Java虚拟机中,并通过Java命令行参数指定。一旦JavaAgent被加载,它就可以在应用程序运行时动态地修改字节码,比如添加日志、性能监控、安全检查等功能。JavaAgent是一种特殊的Java程
- springBoot整合spring-shell开发java命令行工具
King斌
一、SpringBoot整合spring-shell1、spring-shell介绍Spring-shell是Spring提供的一个组件,此组件可以将Java中的代码逻辑封装为shell命令。通过启动服务器上的shell服务来通过命令方式执行java代码逻辑2、添加依赖org.springframework.shellspring-shell-starter2.0.0.RELEASE3、声明she
- Java命令行解析工具Apache CLI
常写写代码
Javajava命令行工具ApacheCLI
ApacheCommonsCLI是Apache下面的一个解析命令行输入的工具包,该工具包还提供了自动生成输出帮助文档的功能。ApacheCommonsCLI支持多种输入参数格式,主要支持的格式有以下几种:POSIX(PortableOperatingSystemInterfaceofUnix)中的参数形式,例如tar-zxvffoo.tar.gzGNU中的长参数形式,例如du--human-rea
- JAVA命令行运行、常用工具 指令
CY桑榆
java反编译编译器cmdpowershell
JAVA常用工具指令*1.命令窗口的使用/常用指令*javac*java*javap*2.更为方便的运行Java文件的powershell窗口====================================================================*1.命令窗口的使用/常用指令(1)打开命令窗口windows+R,输入cmd回车打开命令行;(2)盘号:——通过命令路径
- Java命令行形式将程序打包成jar包,防止报错:没有主清单属性
开发转测试
jarjava
1.编写java文件新建空文件夹src,binsrc文件夹下面新建文件HelloWorld.javapackagecom.ray;publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println("Hello!jar");}}2.javac编译文件到binc:\tools\java1\src>javac-d../
- Java 9 新特性概览
java9
Java9发布于2017年9月21日。作为Java8之后3年半才发布的新版本,Java9带来了很多重大的变化其中最重要的改动是Java平台模块系统的引入,其他还有诸如集合、Stream流......。JEP222:jshell-Java命令行工具JShell是Java9新增的一个实用工具。为Java提供了类似于Python的实时命令行交互工具。在JShell中可以直接输入表达式并查看其执行结果。J
- jcommander 命令
后端
前言如果你想构建一个支持命令行参数的程序,那么jcommander非常适合你,jcommander是一个只有几十kb的Java命令行参数解析工具,可以通过注解的方式快速实现命令行参数解析。这篇教程会通过介绍jcommadner,快速的创建一个命令行程序,最后支持的命令参数功能如下图。这个命令行工具仿照git操作命令,主要提供了如下功能命令:git-app.jar-help查看命令帮助信息。git-
- java命令行参数
iteye_1898
javajavajava命令行
命令行参数就是main方法里面的参数String[]args他就是一个数组,args只是数据类型的一个名称,就是一个数组的变量,名称无所谓,类型没变就行了。这个就是程序的入口点。如图7.4所示:图7.4他是怎么运行的?为什么要传递一个字符串?比如a.txt,为什么双击他就会打开记事本?因为在双击的时候windos首先把双击文件的path路径收集起来,之后看后缀名称是.txt关联的是什么程序,是记事
- Java实验04-命令行执行Jar包Java命令行文件操作程序设计
爱吃章鱼的怪兽
Java实验课java开发语言后端
实验要求点点关注点点关注点点关注点点关注点点关注点点关注点点关注点点关注点点关注点点关注点点关注点点关注点点关注点点关注点点关注点点关注点点关注点点关注点点关注点点关注点点关注点点关注点点关注点点关注点点关注点点关注点点关注点点关注点点关注点点关注点点关注点点关注设计实现一个Java命令行文件操作程序fsops.jar。命令行操作模式,程序的基本使用方法如下Windows平台C:>java.exe
- Java 命令行参数解析
MazenChan
Java
最近在找java命令行参数解析,翻到一篇排版较好的文章,遂转载分享。Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOME"bin/"java-option来启动,option为虚拟机参数,JAVA_HOME为JDK安装路径,通过虚拟机参数可对虚拟机的运行状态进行调整,掌握参数的含义可对虚拟机的运行模式有更深入的理解。如何查看参数列表虚
- 命令行参数的程序
后端
前言如果你想构建一个支持命令行参数的程序,那么jcommander非常适合你,jcommander是一个只有几十kb的Java命令行参数解析工具,可以通过注解的方式快速实现命令行参数解析。这篇教程会通过介绍jcommadner,快速的创建一个命令行程序,最后支持的命令参数功能如下图。这个命令行工具仿照git操作命令,主要提供了如下功能命令:git-app.jar-help查看命令帮助信息。git-
- java命令行中找不到或无法加载主类
TranquilGlow
javajava
今天我在使用命令行的时候发现这个javac已经编译运行了,但是这个java执行的时候,提示找不到或无法加载主类分析原因我这个java文件是有包的,因此这个D:\code\vscode-java\demo>javacMain.javaD:\code\vscode-java\demo>javaMain错误:找不到或无法加载主类demo.MainD:\code\vscode-java\demo>cd..
- Java常用命令行工具
Joe?
运维javaruntime
常用的Java命令行工具的使用梳理,方便以后线上问题排查处理.示例使用的虚拟机版本(JVM自带命令行工具在bin目录下)[root@localhost~]#java-versionjavaversion"1.8.0_121"Java(TM)SERuntimeEnvironment(build1.8.0_121-b13)JavaHotSpot(TM)64-BitServerVM(build25.12
- JVM 优化
KillCom
服务器
Tomcat启动命令行中的优化参数,就是JVM的优化。Tomcat首先跑在JVM之上的,因为它的启动其实也只是一个java命令行,首先我们需要对这个JAVA的启动命令行进行调优。不管是YGC还是FullGC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整
- JVM源码剖析之Java命令行参数全解
程序员李哈
Java底层源码解读jvmjava
最近,有一位网友询问关于Java命令行参数方面的问题,因为在Java中参数有很多种,有不少的读者一直没弄明白,所以特意写下此篇文章。此篇文章分2大块,第一块是不同参数的解释,第2块就是JVM源码论证~1-1Java参数全解图1-1给出了运行Java代码的命令行,其中包括了启动命令和不同种类的参数,分别用红、黄、黑、绿、蓝、粉6种颜色代表。命令这个相信是一位Java程序员就能明白,使用javac命令
- 网站服务器配置计算,服务器配置计算公式
许多的小兵器
网站服务器配置计算
服务器配置计算公式内容精选换一换简要介绍HTSlib是一个C库,用于读取和写入高通量测序数据。HTSlib是SAMtools使用的核心库。HTSlib还提供了bgzip,htsfile和tabix实用程序。开发语言:C一句话描述:一款用于读取和写入高通量测序数据的C库开源协议:GNU建议的版本根据实际需要选择版本,本文档以htslib-1.10.2为例进行说明。云服简要介绍一组Java命令行工具,
- Java命令行中对jar依赖的处理
路秋原
在我们使用javac和java命令来编译和运行Java程序时,经常会碰到需要引入外部jar依赖的情况。例如当我们使用org.json.JSONObject时,我们就需要引入json.jar这个外部包。但使用javac编译Java程序时,如何指定jar依赖呢?我们用一个例子来说明。在下面的例子中,我们的主程序是Main.java,它的编译需要两个jar文件:json.jar和fast.jar,这两个
- 对于规范和实现,你会混淆吗?
yangshangchuan
HotSpot
昨晚和朋友聊天,喝了点咖啡,由于我经常喝茶,很长时间没喝咖啡了,所以失眠了,于是起床读JVM规范,读完后在朋友圈发了一条信息:
JVM Run-Time Data Areas:The Java Virtual Machine defines various run-time data areas that are used during execution of a program. So
- android 网络
百合不是茶
网络
android的网络编程和java的一样没什么好分析的都是一些死的照着写就可以了,所以记录下来 方便查找 , 服务器使用的是TomCat
服务器代码; servlet的使用需要在xml中注册
package servlet;
import java.io.IOException;
import java.util.Arr
- [读书笔记]读法拉第传
comsci
读书笔记
1831年的时候,一年可以赚到1000英镑的人..应该很少的...
要成为一个科学家,没有足够的资金支持,很多实验都无法完成
但是当钱赚够了以后....就不能够一直在商业和市场中徘徊......
- 随机数的产生
沐刃青蛟
随机数
c++中阐述随机数的方法有两种:
一是产生假随机数(不管操作多少次,所产生的数都不会改变)
这类随机数是使用了默认的种子值产生的,所以每次都是一样的。
//默认种子
for (int i = 0; i < 5; i++)
{
cout<<
- PHP检测函数所在的文件名
IT独行者
PHP函数
很简单的功能,用到PHP中的反射机制,具体使用的是ReflectionFunction类,可以获取指定函数所在PHP脚本中的具体位置。 创建引用脚本。
代码:
[php]
view plain
copy
// Filename: functions.php
<?php&nbs
- 银行各系统功能简介
文强chu
金融
银行各系统功能简介 业务系统 核心业务系统 业务功能包括:总账管理、卡系统管理、客户信息管理、额度控管、存款、贷款、资金业务、国际结算、支付结算、对外接口等 清分清算系统 以清算日期为准,将账务类交易、非账务类交易的手续费、代理费、网络服务费等相关费用,按费用类型计算应收、应付金额,经过清算人员确认后上送核心系统完成结算的过程 国际结算系
- Python学习1(pip django 安装以及第一个project)
小桔子
pythondjangopip
最近开始学习python,要安装个pip的工具。听说这个工具很强大,安装了它,在安装第三方工具的话so easy!然后也下载了,按照别人给的教程开始安装,奶奶的怎么也安装不上!
第一步:官方下载pip-1.5.6.tar.gz, https://pypi.python.org/pypi/pip easy!
第二部:解压这个压缩文件,会看到一个setup.p
- php 数组
aichenglong
PHP排序数组循环多维数组
1 php中的创建数组
$product = array('tires','oil','spark');//array()实际上是语言结构而不 是函数
2 如果需要创建一个升序的排列的数字保存在一个数组中,可以使用range()函数来自动创建数组
$numbers=range(1,10)//1 2 3 4 5 6 7 8 9 10
$numbers=range(1,10,
- 安装python2.7
AILIKES
python
安装python2.7
1、下载可从 http://www.python.org/进行下载#wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
2、复制解压
#mkdir -p /opt/usr/python
#cp /opt/soft/Python-2
- java异常的处理探讨
百合不是茶
JAVA异常
//java异常
/*
1,了解java 中的异常处理机制,有三种操作
a,声明异常
b,抛出异常
c,捕获异常
2,学会使用try-catch-finally来处理异常
3,学会如何声明异常和抛出异常
4,学会创建自己的异常
*/
//2,学会使用try-catch-finally来处理异常
- getElementsByName实例
bijian1013
element
实例1:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/x
- 探索JUnit4扩展:Runner
bijian1013
java单元测试JUnit
参加敏捷培训时,教练提到Junit4的Runner和Rule,于是特上网查一下,发现很多都讲的太理论,或者是举的例子实在是太牵强。多搜索了几下,搜索到两篇我觉得写的非常好的文章。
文章地址:http://www.blogjava.net/jiangshachina/archive/20
- [MongoDB学习笔记二]MongoDB副本集
bit1129
mongodb
1. 副本集的特性
1)一台主服务器(Primary),多台从服务器(Secondary)
2)Primary挂了之后,从服务器自动完成从它们之中选举一台服务器作为主服务器,继续工作,这就解决了单点故障,因此,在这种情况下,MongoDB集群能够继续工作
3)挂了的主服务器恢复到集群中只能以Secondary服务器的角色加入进来
2
- 【Spark八十一】Hive in the spark assembly
bit1129
assembly
Spark SQL supports most commonly used features of HiveQL. However, different HiveQL statements are executed in different manners:
1. DDL statements (e.g. CREATE TABLE, DROP TABLE, etc.)
- Nginx问题定位之监控进程异常退出
ronin47
nginx在运行过程中是否稳定,是否有异常退出过?这里总结几项平时会用到的小技巧。
1. 在error.log中查看是否有signal项,如果有,看看signal是多少。
比如,这是一个异常退出的情况:
$grep signal error.log
2012/12/24 16:39:56 [alert] 13661#0: worker process 13666 exited on s
- No grammar constraints (DTD or XML schema).....两种解决方法
byalias
xml
方法一:常用方法 关闭XML验证
工具栏:windows => preferences => xml => xml files => validation => Indicate when no grammar is specified:选择Ignore即可。
方法二:(个人推荐)
添加 内容如下
<?xml version=
- Netty源码学习-DefaultChannelPipeline
bylijinnan
netty
package com.ljn.channel;
/**
* ChannelPipeline采用的是Intercepting Filter 模式
* 但由于用到两个双向链表和内部类,这个模式看起来不是那么明显,需要仔细查看调用过程才发现
*
* 下面对ChannelPipeline作一个模拟,只模拟关键代码:
*/
public class Pipeline {
- MYSQL数据库常用备份及恢复语句
chicony
mysql
备份MySQL数据库的命令,可以加选不同的参数选项来实现不同格式的要求。
mysqldump -h主机 -u用户名 -p密码 数据库名 > 文件
备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
mysqldump -–add-drop-table -uusername -ppassword databasename > ba
- 小白谈谈云计算--基于Google三大论文
CrazyMizzz
Google云计算GFS
之前在没有接触到云计算之前,只是对云计算有一点点模糊的概念,觉得这是一个很高大上的东西,似乎离我们大一的还很远。后来有机会上了一节云计算的普及课程吧,并且在之前的一周里拜读了谷歌三大论文。不敢说理解,至少囫囵吞枣啃下了一大堆看不明白的理论。现在就简单聊聊我对于云计算的了解。
我先说说GFS
&n
- hadoop 平衡空间设置方法
daizj
hadoopbalancer
在hdfs-site.xml中增加设置balance的带宽,默认只有1M:
<property>
<name>dfs.balance.bandwidthPerSec</name>
<value>10485760</value>
<description&g
- Eclipse程序员要掌握的常用快捷键
dcj3sjt126com
编程
判断一个人的编程水平,就看他用键盘多,还是鼠标多。用键盘一是为了输入代码(当然了,也包括注释),再有就是熟练使用快捷键。 曾有人在豆瓣评
《卓有成效的程序员》:“人有多大懒,才有多大闲”。之前我整理了一个
程序员图书列表,目的也就是通过读书,让程序员变懒。 程序员作为特殊的群体,有的人可以这么懒,懒到事情都交给机器去做,而有的人又可以那么勤奋,每天都孜孜不倦得
- Android学习之路
dcj3sjt126com
Android学习
转自:http://blog.csdn.net/ryantang03/article/details/6901459
以前有J2EE基础,接触JAVA也有两三年的时间了,上手Android并不困难,思维上稍微转变一下就可以很快适应。以前做的都是WEB项目,现今体验移动终端项目,让我越来越觉得移动互联网应用是未来的主宰。
下面说说我学习Android的感受,我学Android首先是看MARS的视
- java 遍历Map的四种方法
eksliang
javaHashMapjava 遍历Map的四种方法
转载请出自出处:
http://eksliang.iteye.com/blog/2059996
package com.ickes;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
/**
* 遍历Map的四种方式
- 【精典】数据库相关相关
gengzg
数据库
package C3P0;
import java.sql.Connection;
import java.sql.SQLException;
import java.beans.PropertyVetoException;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class DBPool{
- 自动补全
huyana_town
自动补全
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml&quo
- jquery在线预览PDF文件,打开PDF文件
天梯梦
jquery
最主要的是使用到了一个jquery的插件jquery.media.js,使用这个插件就很容易实现了。
核心代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.
- ViewPager刷新单个页面的方法
lovelease
androidviewpagertag刷新
使用ViewPager做滑动切换图片的效果时,如果图片是从网络下载的,那么再子线程中下载完图片时我们会使用handler通知UI线程,然后UI线程就可以调用mViewPager.getAdapter().notifyDataSetChanged()进行页面的刷新,但是viewpager不同于listview,你会发现单纯的调用notifyDataSetChanged()并不能刷新页面
- 利用按位取反(~)从复合枚举值里清除枚举值
草料场
enum
以 C# 中的 System.Drawing.FontStyle 为例。
如果需要同时有多种效果,
如:“粗体”和“下划线”的效果,可以用按位或(|)
FontStyle style = FontStyle.Bold | FontStyle.Underline;
如果需要去除 style 里的某一种效果,
- Linux系统新手学习的11点建议
刘星宇
编程工作linux脚本
随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起。这里介绍学习Linux的一些建议。
一、从基础开始:常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的。例如:为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些问题其实都不是很难的,只要了解了 Linu
- hibernate dao层应用之HibernateDaoSupport二次封装
wangzhezichuan
DAOHibernate
/**
* <p>方法描述:sql语句查询 返回List<Class> </p>
* <p>方法备注: Class 只能是自定义类 </p>
* @param calzz
* @param sql
* @return
* <p>创建人:王川</p>
* <p>创建时间:Jul